繁体   English   中英

如何连接包含空值的熊猫数据框的两列?

[英]How to join two columns of a pandas dataframe containing null values?

我有数据框熊猫:

      import numpy as np
      import pandas as pd

      df = pd.DataFrame({'ID': [1,2,3,4,5],
                         'column_1': [10.6, 10.4, np.NaN, np.NaN, np.NaN],
                         'column_2': [np.NaN, np.NaN, 30, 40, 50]
                        })

     print(df)

     ID column_1    column_2
      1  10.6        NaN
      2  10.4        NaN
      3  NaN         30.0
      4  NaN         40.0
      5  NaN         50.0

我想在数据框中创建一个新列,它是第 1 列和第 2 列的连接点。所以我尝试执行以下代码:

      df['column_1'] = df['column_1'].astype(float)
      df['column_2'] = df['column_2'].astype(float)


      df['new_column'] = [''.join(i) for i in zip(df['column_1'],
                                                  df['column_2'])]

但是,当我运行我的创建新列时,出现以下错误: TypeError: sequence item 0: expected str instance, float found

注意:我尝试使用 astype() 将列转换为浮点类型,但问题仍然存在。 我该如何解决?

我希望输出为:

       ID   column_1    column_2   new_columns
        1      10.6      NaN         10.6
        2      10.4      NaN         10.4
        3      NaN       30.0        30.0
        4      NaN       40.0        40.0
        5      NaN       50.0        50.0
import numpy as np
import pandas as pd

df = pd.DataFrame({
    'ID': [1,2,3,4,5],
    'column_1': [10.6, 10.4, np.NaN, np.NaN, np.NaN],
    'column_2': [np.NaN, np.NaN, 30, 40, 50]
})

df['column_1'] = df['column_1'].astype(float)
df['column_2'] = df['column_2'].astype(float)

df['new_column'] = df['column_1'].combine_first(df['column_2'])

print(df)

结果:

   ID  column_1  column_2  new_column
0   1      10.6       NaN        10.6
1   2      10.4       NaN        10.4
2   3       NaN      30.0        30.0
3   4       NaN      40.0        40.0
4   5       NaN      50.0        50.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM