这应该是一个非常基本的问题,但我什么都没有发现,或者可能根本就不可行.
我有一个包含A、B、C列的Python Pandas DataFrame DF,我想创建一个新的D列,像这样,df['D'] = df['A']+df['B']*df['C']
,我的问题是,我必须像这样写四次"df"吗?因为它们在同一个数据框中,有没有一种简单的方法来只写一次"df"?
类似于:
df['D'] = ['A']+['B']*['C']
这应该是一个非常基本的问题,但我什么都没有发现,或者可能根本就不可行.
我有一个包含A、B、C列的Python Pandas DataFrame DF,我想创建一个新的D列,像这样,df['D'] = df['A']+df['B']*df['C']
,我的问题是,我必须像这样写四次"df"吗?因为它们在同一个数据框中,有没有一种简单的方法来只写一次"df"?
类似于:
df['D'] = ['A']+['B']*['C']
你可以用eval
来做这类事情,这很不错:
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
out = df.eval('D = A+B*C')
或原地修改:
df['D'] = df.eval('A+B*C')
输出:
A B C D
0 1 4 7 29
1 2 5 8 42
2 3 6 9 57