我有以下DataFrame:
In [1]:
import pandas as pd
df = pd.DataFrame({'a': [1,2,3], 'b': [2,3,4], 'c':['dd','ee','ff'], 'd':[5,9,1]})
df
Out [1]:
a b c d
0 1 2 dd 5
1 2 3 ee 9
2 3 4 ff 1
Run Code Online (Sandbox Code Playgroud)
我想添加一列'e',它是列的总和'a','b'和'd'.
穿过论坛,我觉得这样的东西会起作用:
df['e'] = df[['a','b','d']].map(sum)
Run Code Online (Sandbox Code Playgroud)
但不是!
我想实现具有列列表['a','b','d']和df输入的操作.
我已经阅读了一个csv文件并将其转换为以下结构:
pivoted = df.pivot('user_id', 'group', 'value')
lookup = df.drop_duplicates('user_id')[['user_id', 'group']]
lookup.set_index(['user_id'], inplace=True)
result = pivoted.join(lookup)
result = result.fillna(0)
Run Code Online (Sandbox Code Playgroud)
结果部分:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 group
user_id
2 33653 2325 916 720 867 187 31 0 6 3 42 56 92 15 l-1
4 18895 414 1116 570 1190 55 92 0 122 23 78 6 4 2 l-2
16 1383 70 27 17 17 1 0 0 0 0 1 0 …Run Code Online (Sandbox Code Playgroud)