假设我有一个DataFrame:
df = pd.DataFrame({'bar': [2, 1, 4, 10, 1, 1],
'baz': [1, 2, 3, 1, 2, 3]})
bar baz
0 2 1
1 1 2
2 4 3
3 10 1
4 1 2
5 1 3
我需要创建一个新列并在那里写下行中最大元素的列名:
bar baz foo
la 2 1 bar
qw 2 1 bar
re 2 3 baz
gf 4 3 bar
hg 10 1 bar
ds 1 2 baz
ds 1 3 baz
至少,我提取了这样的名字:
a = hours.as_matrix()
for i in a:
print(hours.columns[i.argmax()])
但,我无法将其转换为DataFrame,导致索引不是整数
答案 0 :(得分:5)
In [101]: df
Out[101]:
bar baz
la 2 1
qw 2 1
re 2 3
gf 4 3
hg 10 1
ds 1 2
ds 1 3
In [102]: df['foo'] = df.idxmax(1)
In [103]: df
Out[103]:
bar baz foo
la 2 1 bar
qw 2 1 bar
re 2 3 baz
gf 4 3 bar
hg 10 1 bar
ds 1 2 baz
ds 1 3 baz