Python 无法对dataframe中具有相同名称的列执行函数
我正在尝试使用groupby方法获取最大数量的同名列:Python 无法对dataframe中具有相同名称的列执行函数,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试使用groupby方法获取最大数量的同名列: df.groupby(by=df.columns, axis=1).max() 例如,我有这样的数据帧: ID A A B B 1 1 2 2 1 2 1 0 0 1 我想得到这个: ID A B 1 2 2 2 1 1 ID A A.1 B B.1 1 1 2 2 1 2 1 0 0 1 相反,我得到的是: ID A B 1 2 2 2 1 1 ID A A.1 B B.1 1
df.groupby(by=df.columns, axis=1).max()
例如,我有这样的数据帧:
ID A A B B
1 1 2 2 1
2 1 0 0 1
我想得到这个:
ID A B
1 2 2
2 1 1
ID A A.1 B B.1
1 1 2 2 1
2 1 0 0 1
相反,我得到的是:
ID A B
1 2 2
2 1 1
ID A A.1 B B.1
1 1 2 2 1
2 1 0 0 1
因此,.1只是添加到每个重复的列名中,没有任何最大化。您确定df列是重复的吗?理想情况下,在阅读pandas时为其添加后缀,什么是
print(df.columns)
?如果是这样,您可以尝试df.groupby(df.columns.str.replace('.\d+',''),axis=1,sort=False)。max()
您确定df列是重复的吗?理想情况下,在阅读pandas时为其添加后缀,什么是print(df.columns)
?如果是这样,您可以尝试df.groupby(df.columns.str.replace('.\d+',''),axis=1,sort=False)。max()