如何将列添加到相对于日期保持不变的数据框中?

维沙尔·奈克(Vishal Naik)

我必须将数据帧df1和df2
包含在内df1的内容是:

        date    high    low    close      C           B             T           R       
1   2020-09-16  1.29257 1.28146 1.28884 1.287623    1.287015    1.288232    0.000000    
2   2020-09-17  1.30074 1.28747 1.29662 1.294943    1.294105    1.295782    1.298102

df2的内容是:

     time               open    high    low     
0   2020-09-16 22:54:00 1.29708 1.29711 1.29695 
1   2020-09-16 22:55:00 1.29698 1.29703 1.29681 
2   2020-09-17 22:56:00 1.29701 1.29709 1.29689 
3   2020-09-17 22:57:00 1.29702 1.29720 1.29701 
4   2020-09-17 22:58:00 1.29717 1.29720 1.29715

我想添加两个数据框。df1的列C将被添加到df2的方式应该导致新的数据帧,该数据帧必须相对于时间是恒定的。
预期的数据帧df3将如下所示

            time                open    high    low  c  
    0   2020-09-16 22:54:00 1.29708 1.29711 1.29695 1.287623
    1   2020-09-16 22:55:00 1.29698 1.29703 1.29681 1.287623
    2   2020-09-17 22:56:00 1.29701 1.29709 1.29689 1.294943
    3   2020-09-17 22:57:00 1.29702 1.29720 1.29701 1.294943
    4   2020-09-17 22:58:00 1.29717 1.29720 1.29715 1.294943

对于第0行和第1行,C为1.28763,因为对于日期2020-09-16,c为1.28763。
对于第2.3行和第4行,C为1.294943,因为对于2020-09-17日期,c为1.294943。

让我们尝试将dictof映射df1.date: df1.C到中的日期提取df2.time

df2['C']=(pd.to_datetime(df2.time).dt.date).astype(str).map(dict(zip(df1.date,df1.C)))

这个怎么运作

#Extract date from df2.time

df2['temp']=pd.to_datetime(df2.time).dt.date



#Create dict from df1.date and df1.C
 D=dict(zip(df1.date,df1.C))

 #Create new column df['C'] by mapping D to df2.temp

df2.temp.map(D)

结果

               time     open     high      low         C
0  2020-09-16 22:54:00  1.29708  1.29711  1.29695  1.287623
1  2020-09-16 22:55:00  1.29698  1.29703  1.29681  1.287623
2  2020-09-17 22:56:00  1.29701  1.29709  1.29689  1.294943
3  2020-09-17 22:57:00  1.29702  1.29720  1.29701  1.294943
4  2020-09-17 22:58:00  1.29717  1.29720  1.29715  1.294943

也可以按照@Erfan的建议

#Rename columns of df1 as follows

    df1=df1[["date", "C"]].rename(columns={"date": "time"})

#Coerce df2.time to date
     df2['time']=pd.to_datetime(df2['time']).dt.date


#Merge df2 and df1
     df2.merge(df1, how='left')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将值列表中的数据添加到列表中的每个数据框?

如何将空列添加到数据框?

如何将小时数添加到数据框中的原始时间,然后生成新日期?

剧情:如何将日期索引添加到数据框列,以便我可以在其中可以将日期用作“ x”的图表[Python]

如何将列添加到现有的填充数据框中

如何将一个数据框的行添加到另一个的列中

如何使用熊猫根据日期列和天数列将行添加到数据框

如何将当前行值加到以熊猫为单位的后续值的总和中(相对于与该行相对应的日期)?

如何将日期列添加到python中已经存在的时间列中?

如何“快速”添加熊猫中相对于特定列的行数据值?

在Pyspark中,如何将值列表作为新列添加到现有数据框?

如何将差异序列结果添加到熊猫数据框中的索引0的另一列?

如何将JuMP值中的数组添加到数据框中的列

如何将分类变量添加到数据框?

CSS将div添加到相对于父级放置的dom中,而没有其他内容跳转

如何将更长的列表添加到数据框

如何将列表中的元素添加到数据框作为保留顺序的列?

如何将列添加到列表中的所有数据框

在R中,如何将拟合值列添加到原始数据框?

如何将表格相对于HTML / CSS中的一列居中?

如何将行添加到数据框?

如何将字符向量的名称列添加到 R 中的数据框中

如何将列添加到数据框中?

如何将具有特定数据的新列添加到 R 数据框中

如何将缺少的日期添加到其他列中的列中?

将 YY.M 日期列添加到 R 中的数据框

如何将数据透视头添加到 Pandas 数据框中?

当列不相同时如何将行添加到数据框中?

如何将百分比列添加到R中数据框中的每一列