Pandas:合并具有相似名称的列

Posted

技术标签:

【中文标题】Pandas:合并具有相似名称的列【英文标题】:Pandas: merge columns with the similar names 【发布时间】:2020-10-25 18:18:13 【问题描述】:
Politics  Politics  Politics    Arts/Culture  Arts/Culture  Arts/Culture
  nan       nan        c         nan            nan          c
  nan        b         nan        a             nan          nan
  nan        b         nan        a             nan          nan
  a          nan       nan        nan           c            nan   

基本上,这会贯穿整个数据帧。 我想将相似的列合并到下面的数据框

Politics    Arts/Culture  
 c              c
 b              a
 b              a
 a              c

【问题讨论】:

列名实际上是相似的还是相同的?我知道默认情况下,熊猫会在导入时重命名此类列,除非您手动或通过某些函数声明了列。 他们是一样的 【参考方案1】:

使用DataFrame.stack + DataFrame.unstack:

df1 = df.stack().unstack()

结果:

# print(df1)

  Arts/Culture Politics
0            c        c
1            a        b
2            a        b
3            c        a

【讨论】:

【参考方案2】:

尝试使用groupbylevel=0axis=1 然后使用first

s=df.groupby(level=0,axis=1).first()
  Arts/Culture Politics
0            c        c
1            a        b
2            a        b
3            c        a

【讨论】:

以上是关于Pandas:合并具有相似名称的列的主要内容,如果未能解决你的问题,请参考以下文章

如何将外观相似的列合并为一个并在熊猫中为其分配名称?

Pandas - 具有重复值的列的外部连接

将来自不同文件夹的多个 csv 文件(相似名称)合并到一个 csv 中并逐行绑定它们 [关闭]

按 ID 合并两个 Excel 文件并合并具有相同名称的列(python、pandas)

如何使用 pandas 从文件夹中读取和组合具有相似名称的 .csv 文件

在没有循环的情况下按行计算 pandas 中的余弦相似度