我正在处理一些混乱的数据,并且试图弄清楚如何将具有相似信息的多列合并到一个列中。例如,我有一个看起来像这样的数据框,我想知道如何将所有三列浓缩为一个:
国家------------州------温度------温度------度
美国-----肯塔基州--- $ 76 ------ 76 -------------------- N / A
美国-----亚利桑那州----- 92 \ n -------不适用------------------不适用
美国-----密歇根州-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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句