【问题标题】:Merging two columns into one [duplicate]将两列合并为一列[重复]
【发布时间】:2021-01-23 15:55:10
【问题描述】:

如果我有一个数据框 (df):

Columnx      Columny
1             NA
2             NA
3             NA
NA            4
NA            5
NA            6

想要

Column z
1
2
3
4
5
6

我怎样才能以最简单的方式做到这一点?本质上 x 和 y 是日期列,但由于之前的合并,我有两个日期列,每个都用 NA 填充,另一个被占用,但只需要一个日期列。

【问题讨论】:

  • 我认为这个骗局更多的是关于 fillna 保留 2 列。这是折叠成 1 个@BEN_YO
  • 不确定这里的欺骗是否正确。
  • @yatu 我仍然认为这是 fillna 的 dup ...
  • 其实你是对的@ben df.Columnx.fillna(df.Columny) 够了,我的错
  • 误解了骗子的行为@BEN_YO

标签: python pandas dataframe merge


【解决方案1】:

使用df.combine_first():

In [58]: df
Out[58]: 
   Column x  Column y
0       1.0       NaN
1       2.0       NaN
2       3.0       NaN
3       NaN       4.0
4       NaN       5.0
5       NaN       6.0

In [59]: df['Column x'].combine_first(df['Column y'])
Out[59]: 
0    1.0
1    2.0
2    3.0
3    4.0
4    5.0
5    6.0
Name: Column_x, dtype: float64

【讨论】:

  • @JoshGale 如果答案有帮助,请upvote 它和accept 它通过点击我答案的left-hand 一侧的check-mark。
【解决方案2】:

你可以在这里使用stack:

pd.DataFrame(df.stack().to_numpy(), columns=['Columnsz'])

   Columnsz
0       1.0
1       2.0
2       3.0
3       4.0
4       5.0
5       6.0

【讨论】:

    猜你喜欢
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 2021-12-26
    • 2014-05-09
    • 1970-01-01
    相关资源
    最近更新 更多