为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫组合包含字符串的重复列

熊猫组合包含字符串的重复列

缥缈止盈 2021-05-07 14:15:12
我在合并重复的列时遇到问题(有点)。它似乎可以在较旧版本的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


查看完整回答
反对 回复 2021-05-11
?
呼如林

TA贡献1798条经验 获得超3个赞

您的算法是一个很好的算法,您可以尝试:

df.groupby(df.columns,axis=1).max(axis=1)


查看完整回答
反对 回复 2021-05-11
  • 3 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信