我在合并重复的列时遇到问题(有点)。它似乎可以在较旧版本的Pandas / Python上运行(不确定问题出在哪里),但在最新版本上却无法运行。我基本上在concat之后有一个混合值的数据框,其中包含重复的列名。这些值将是一个int,字符串或nan。对于每个重复的列名称,所有非nan值都将相同,因此从理论上讲max()应该可以解决问题。说我有数据框: col1 col1 col2 col2 col30 Foo nan nan Bar Baz1 nan nan Bar Bar nan2 0 nan 1 nan 1我的目标是 col1 col2 col30 Foo Bar Baz1 nan Bar nan2 0 1 1这样做df.groupby(df.columns,axis=1).max()确实可以执行我希望在较旧版本的Pandas / Python上执行的操作,但不适用于最新版本。这是我得到的最新版本: col1 col2 col30 nan nan Baz1 nan nan nan2 0 1 1有任何想法吗?
3 回答
catspeake
TA贡献1111条经验 获得超0个赞
我认为您transpose首先需要数据框,reset the index然后rename是重复的index列值,最后使用groupby。
df_t = df.T.reset_index()
df_t["index"] = df_t["index"].str.split(".").str[0]
result = df_t.groupby("index").first().T
输出
Out[57]:
index col1 col2 col3
0 Foo Bar Baz
1 NaN Bar NaN
2 0 1 1
添加回答
举报
0/150
提交
取消