python - 如何在 Pandas Dataframe 中合并多个具有相似名称的列而不丢失数据

标签 python pandas dataframe data-cleaning

我正在处理一些困惑的数据,我正在尝试找出如何将具有相似信息的多个列合并到一列中。例如,我有一个如下所示的数据框,我想知道如何将所有三列压缩为一列:

国家 ------------州 ------ 温度 ------ 温度 ------ 度

美国 -----肯塔基州 --- 76 美元 ------ 76 -------------------- N/A

美国 -----亚利桑那州 ----- 92\n ------- N/A ------------------ N/A

美国 ----- 密歇根州 -- 45 -------------- 45@ ----------------- 60

最佳答案

您可以尝试此操作,然后删除不需要的列:

df['combined'] = df.apply(lambda x: list([x['Temp'],
                                        x['Temperature'],
                                        x['Degrees']]),axis=1) 

如果您希望它们用斜杠分隔,您也可以执行类似的操作

df.apply(lambda x: x.Temp + ' / ' + x.Temperature + ' / ' + x.Degrees, axis=1)

# or simply

df['combined'] = df.Temp + ' / ' + df.Temperature + ' / ' + df.Degrees

我用 NaN 数据测试了这个,它适用于 NaN,也许值得一试:

import numpy as np
def combine_with_nan(x):
   try:
      np.isnan(x.Temp)
      Temp = 'NaN'
   except:
      Temp = x.Temp
   try:
      np.isnan(x.Temperature)
      Temperature = 'NaN'
   except:
      Temperature = x.Temperature
   try:
      np.isnan(x.Degrees)
      Degrees = 'NaN'
   except:
      Degrees = x.Degrees
   return Temp + ' / ' + Temperature + ' / ' + Degrees

df.apply(combine_with_nan, axis=1)

关于python - 如何在 Pandas Dataframe 中合并多个具有相似名称的列而不丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59145862/

相关文章:

Python独立HTTP服务器支持脚本运行?

python - 解析列中包含列表的 CSV

python - 使用自定义颜色渐变填充两条线之间的区域

python - Pandas:将事件数据汇总到表中

python - 在不同的列名上合并两个不同的数据框

python - Bottle pandas 返回 xls 文件

python - 读取文件是否比从数据库读取数据快?

python-3.x - 根据另一个数据帧中的位置从主数据帧中提取子序列

python - 如何获得连续元素频率的排名?

dataframe - 从过滤聚合 pySpark 中获取第一个示例元素