问题:
如何在 Pandas 数据框中分别考虑每一行(并可能用 NaN 替换它们),从每一行中删除重复的单元格值?
如果我们可以将所有新创建的 NaN 移到每一行的末尾,那就更好了。
参考:相关但不同的帖子:
例子:
import pandas as pd
df = pd.DataFrame({'a': ['A', 'A', 'C', 'B'],
'b': ['B', 'D', 'B', 'B'],
'c': ['C', 'C', 'C', 'A'],
'd': ['D', 'D', 'B', 'A']},
index=[0, 1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
这创造了这个df:
| 一种 | 乙 | C | d | |
|---|---|---|---|---|
| 0 | 一种 | 乙 | C | D |
| 1 | 一种 | D | C | D |
| 2 … |
按列分组以在另一列中查找最频繁的值。例子:
import pandas as pd
d = {'col1': ['green','green','green','blue','blue','blue'],'col2': ['gx','gx','ow','nb','nb','mj']}
df = pd.DataFrame(data=d)
df
Run Code Online (Sandbox Code Playgroud)
给出:
col1 col2
green gx
green gx
green ow
blue nb
blue nb
blue xv
Run Code Online (Sandbox Code Playgroud)
结果:
因为green拥有gx和blue拥有nb
我有这个数据框,如果我有重复的行,如果它们完全相同(梅赛德斯exp),我怎样才能做出条件,我只保留一个(不求和)或者如果有一个求和(起亚案例)租金/售价差异
Df 示例
cars rent sale
Kia 1 2
Bmw 1 4
Mercedes 2 1
Ford 1 1
Kia 4 5
Mercedes 2 1
Run Code Online (Sandbox Code Playgroud)
我写这段代码:
import pandas as pd
df=pd.DataFrame({'cars':['Kia','Bmw','Mercedes','Ford','Kia','Mercedes'],
'rent':[1,1,2,1,4,2],
'sale':[2,4,1,1,5,1]})
df=df.groupby(['cars']).sum().reset_index()
print(df)
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
cars rent sale
0 Bmw 1 4
1 Ford 1 1
2 Kia 5 7
3 Mercedes 4 2
Run Code Online (Sandbox Code Playgroud)
预期输出:
cars rent sale
0 Kia 5 7
1 Bmw 1 4
2 Mercedes 2 1
3 Ford 1 1
Run Code Online (Sandbox Code Playgroud)