我正在处理一些困惑的数据,我正在尝试找出如何将具有相似信息的多个列合并到一列中。例如,我有一个如下所示的数据框,我想知道如何将所有三列压缩为一列:
国家 ------------州 ------ 温度 ------ 温度 ------ 度
美国 -----肯塔基州 --- 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/