簡體   English   中英

如何保存 python dataframe 中每一列的最大行值?

[英]How to save max row values for each column in python dataframe?

我有一個 dataframe 像:

   Name  A   B   C
0  Sen   1   0   NaN
1  Kes   0   1   0
2  Pas   0   0   1
3  Sen   0   0   NaN
4  Pas   0   0   2

我想使用規則單獨刪除每列的重復項:

名稱列是關鍵。

例如 Sen 重復,但其值僅在 A 中發生變化,對於 B 和 C,其值相同。 因此,對於 A,我想做一個 OR 運算並將 Sen A 的值保留為 1,而在另一行中它應該填充“Nan”。

基本上我不想刪除整行進行重復,而是修改每列內所有列的值。

預期 output:

   Name  A     B   C
0  Sen   1     0   NaN
1  Kes   0     1   0
2  Pas   0     0   Nan
3  Sen   Nan   0   NaN
4  Pas   0     0   2

我們可以用wheregroupby + max

s=df.groupby('Name').max().reindex(df.Name).values
df.drop('Name',1).where(df.drop('Name',1)==s)
     A  B    C
0  1.0  0  NaN
1  0.0  1  0.0
2  0.0  0  NaN
3  NaN  0  NaN
4  0.0  0  2.0
#df.loc[:,'A':]=df.drop('Name',1).where(df.drop('Name',1)==s)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM