1
Windows 7中,64位
蟒蛇3.5.1
挑戰
我想這應該很容易,但盡我所能,很難完成,甚至難以解釋。我希望下面的可重複的例子可以解釋這個問題。在this post中,R的相似問題已經被詢問和回答。
我有一個熊貓數據框,我想知道每行的最大值,並將該信息附加爲新列。我也想知道最大值所在列的名稱。我想向現有數據框添加另一列,其中包含可以找到最大值的列的名稱。
重複的例子,
In[1]:
# Make pandas dataframe
df = pd.DataFrame({'a':[1,0,0,1,3], 'b':[0,0,1,0,1], 'c':[0,0,0,0,0]})
# Calculate max
my_series = df.max(numeric_only=True, axis = 1)
my_series.name = "maxval"
# Include maxval in df
df = df.join(my_series)
df
Out[1]:
a b c maxval
0 1 0 0 1
1 0 0 0 0
2 0 1 0 1
3 1 0 0 1
4 3 1 0 3
到目前爲止好。現在的另一列添加到包含該列部分的名稱現有數據框:
In[2]:
?
?
?
# This is what I'd like to accomplish:
Out[2]:
a b c maxval maxcol
0 1 0 0 1 a
1 0 0 0 0 a,b,c
2 0 1 0 1 b
3 1 0 0 1 a
4 3 1 0 3 a
請注意,我想返回所有的列名,如果多列包含相同的最大值。此外請注意,maxval列不包含在maxcol中,因爲這沒有多大意義。預先感謝,如果有人在這裏有趣的。