【问题标题】:input column based on conditional statement pandas基于条件语句 pandas 的输入列
【发布时间】:2017-02-03 20:24:11
【问题描述】:

我有两个 Pandas 数据框,希望在日期匹配的 DF1 中插入 DF2 值中的日和周列。例如例如下面的第 4 天和第 1 周将从 DF2 第 1 行中提取并插入到 DF1 中的所有天和周列中。

DF 1

montgomery  year   date        day     week
0.0         2016  04/01/2016
0.0         2016  04/01/2016
0.0         2016  04/01/2016
0.0         2016  04/01/2016

DF 2

date       day  week
04/01/2016    4   1
05/01/2016    5   1
06/01/2016    6   1

我已经研究过使用 numpy 条件语句,但还没有找到解决方案,谢谢

【问题讨论】:

  • df1.combine_first(df2) 工作
  • 从您的示例中不清楚您的日期是日期时间还是字符串,并且您的第二个 df 中的日期格式显示短年份格式,您能否澄清这一点

标签: python pandas numpy dataframe


【解决方案1】:

IIUC 你需要to_datetimemerge

#if empty columns in DF1, remove them
DF1 = DF1.drop(['day','week'], axis=1)

#convert columns to datetimes
DF1.date = pd.to_datetime(DF1.date)
DF2.date = pd.to_datetime(DF2.date)

print (pd.merge(DF1,DF2, how='left', on='date'))
   montgomery  year       date  day  week
0         0.0  2016 2016-04-01    4     1
1         0.0  2016 2016-04-01    4     1
2         0.0  2016 2016-04-01    4     1
3         0.0  2016 2016-04-01    4     1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 2016-12-09
    • 2017-04-12
    • 2019-12-15
    • 2020-07-09
    • 1970-01-01
    • 2020-04-06
    • 2018-08-06
    相关资源
    最近更新 更多