如何在一个数据帧中合并多个具有相似名称的列而不丢失d

2024-04-27 03:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一些杂乱的数据,我正在尝试找出如何将具有相似信息的多个列合并到一个列中。例如,我有一个看起来像这样的数据帧,我想知道如何将所有三列压缩为一列:

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

美国——肯塔基州——76美元——76美元——不适用

美国-----亚利桑那-----92\n-----不适用-----不适用

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


Tags: 数据信息国家温度杂乱
1条回答
网友
1楼 · 发布于 2024-04-27 03:33:17

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

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)

相关问题 更多 >