Pandas 基于dataframe中的其他列创建新列
基于其他两列创建一组新列的最佳方法是什么?(类似于交叉表或SQL case语句) 这是可行的,但在大型数据帧上性能非常慢:Pandas 基于dataframe中的其他列创建新列,pandas,Pandas,基于其他两列创建一组新列的最佳方法是什么?(类似于交叉表或SQL case语句) 这是可行的,但在大型数据帧上性能非常慢: for label in labels: df[label + '_amt'] = df.apply(lambda row: row['amount'] if row['product'] == label else 0, axis=1) 你可以用 或者 完美的谢谢。我选择了>>>df[label+''u amt']=(df['product']==label)*d
for label in labels:
df[label + '_amt'] = df.apply(lambda row: row['amount'] if row['product'] == label else 0, axis=1)
你可以用
或者
完美的谢谢。我选择了>>>df[label+''u amt']=(df['product']==label)*df['amount']
>>> df
amount product
0 6 b
1 3 c
2 3 a
3 7 a
4 7 a
>>> df.pivot_table(index=df.index, values='amount',
... columns='product', fill_value=0)
product a b c
0 0 6 0
1 0 0 3
2 3 0 0
3 7 0 0
4 7 0 0
>>> for label in df['product'].unique():
... df[label + '_amt'] = (df['product'] == label) * df['amount']
...
>>> df
amount product b_amt c_amt a_amt
0 6 b 6 0 0
1 3 c 0 3 0
2 3 a 0 0 3
3 7 a 0 0 7
4 7 a 0 0 7