熊猫:将两个不同大小的数据框合并到一列

维克多

我的第一个数据帧(df1)如下所示:

      pvalue    trend               time                
0   0.000065    0.000076    2019-03-18 04:00:04 
1   0.000087    0.000098    2019-03-18 04:00:06 
2   0.000000    0.000000    2019-03-18 04:00:22 
3   0.000000    0.000087    2019-03-18 04:02:29 
4   0.000000    0.000000    2019-03-18 04:03:04
5   0.000000    0.000023    2019-03-18 04:03:05 
6   0.000000    0.000000    2019-03-18 04:03:18 
7   0.000000    0.000067    2019-03-18 04:18:55 
8   0.000000    0.000000    2019-03-18 04:18:56 
9   0.000000    0.000000    2019-03-18 04:20:41

我的第二个数据(df2)如下所示:

                time      price
0   2019-03-18 04:00:00  0.00190633
1   2019-03-18 04:00:01  0.00190633
2   2019-03-18 04:00:02  0.00190633
3   2019-03-18 04:00:03  0.00190633
4   2019-03-18 04:00:04  0.00190633
5   2019-03-18 04:00:05  0.00190633
6   2019-03-18 04:00:06  0.00190800
7   2019-03-18 04:00:07  0.00190800
8   2019-03-18 04:00:08  0.00190800
9   2019-03-18 04:00:09  0.00190800

df2['time']在每一行中,都有一秒钟的变化。但是在df1上,每隔df1['time']几秒钟之间就有一些间隔……我想要的是以下内容:

                time      price     pvalue  trend
0   2019-03-18 04:00:00 0.00190633 0.000000 0.000000
1   2019-03-18 04:00:01 0.00190633 0.000000 0.000000
2   2019-03-18 04:00:02 0.00190633 0.000000 0.000000
3   2019-03-18 04:00:03 0.00190633 0.000000 0.000000
4   2019-03-18 04:00:04 0.00190633 0.000065 0.000076
5   2019-03-18 04:00:05 0.00190633 0.000000 0.000000
6   2019-03-18 04:00:06 0.00190800 0.000087 0.000098    

因此,基本上所有的秒数都存在,当df1中有pvalue和趋势的数据时,将其放入新的数据帧中。我尝试了以下内容:df_all =df_pvalue_trade.merge(df_check,on='time',left_index=True)但是我只有df1行,而不是像我的示例中那样每隔一秒钟……知道吗?谢谢!

我使用上面尝试过的代码得到的结果如下:

pvalue  trend   time    mkt_result  price
6   0.000000    0.000000    2019-03-18 04:00:06 reject Ha := upward OR downward trend   0.00190800
21  0.000000    0.000000    2019-03-18 04:00:21 reject Ha := upward OR downward trend   0.00190800
22  0.000000    0.000000    2019-03-18 04:00:22 reject Ha := upward OR downward trend   0.00190800
149 0.000000    0.000000    2019-03-18 04:02:29 reject Ha := upward OR downward trend   0.00190594
184 0.000000    0.000000    2019-03-18 04:03:04 reject Ha := upward OR downward trend   0.00190594
185 0.000000    0.000000    2019-03-18 04:03:05 reject Ha := upward OR downward trend   0.00190594
198 0.000000    0.000000    2019-03-18 04:03:18 reject Ha := upward OR downward trend   0.00190594

那不是我想要的...

耶斯列尔

使用mergeDataFrame.fillna

df = pd.merge(df2, df1, on='time', how='left').fillna(0)
print (df)
                 time     price    pvalue     trend
0 2019-03-18 04:00:00  0.001906  0.000000  0.000000
1 2019-03-18 04:00:01  0.001906  0.000000  0.000000
2 2019-03-18 04:00:02  0.001906  0.000000  0.000000
3 2019-03-18 04:00:03  0.001906  0.000000  0.000000
4 2019-03-18 04:00:04  0.001906  0.000065  0.000076
5 2019-03-18 04:00:05  0.001906  0.000000  0.000000
6 2019-03-18 04:00:06  0.001908  0.000087  0.000098
7 2019-03-18 04:00:07  0.001908  0.000000  0.000000
8 2019-03-18 04:00:08  0.001908  0.000000  0.000000
9 2019-03-18 04:00:09  0.001908  0.000000  0.000000

另外,如果需要替换NaNs,仅从df1.columns不同的列,df2.columns

d = dict.fromkeys(df1.columns.difference(df2.columns), 0)
print (d)
{'pvalue': 0, 'trend': 0}

df = pd.merge(df2, df1, on='time', how='left').fillna(d)
print (df)
                 time     price    pvalue     trend
0 2019-03-18 04:00:00  0.001906  0.000000  0.000000
1 2019-03-18 04:00:01  0.001906  0.000000  0.000000
2 2019-03-18 04:00:02  0.001906  0.000000  0.000000
3 2019-03-18 04:00:03  0.001906  0.000000  0.000000
4 2019-03-18 04:00:04  0.001906  0.000065  0.000076
5 2019-03-18 04:00:05  0.001906  0.000000  0.000000
6 2019-03-18 04:00:06  0.001908  0.000087  0.000098
7 2019-03-18 04:00:07  0.001908  0.000000  0.000000
8 2019-03-18 04:00:08  0.001908  0.000000  0.000000
9 2019-03-18 04:00:09  0.001908  0.000000  0.000000

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将两个线性回归预测模型(每个数据框的子集)合并到数据框的一列中

来自分类常见问题

合并两个熊猫数据框(在同一列上连接)

来自分类Dev

将两个大小不同的数据框合并为一个

来自分类Dev

如何合并到两个熊猫数据框?

来自分类Dev

将两个系列合并为数据框的一列

来自分类Dev

如何将两个数据帧中的两列合并到新数据帧(熊猫)的一列中?

来自分类Dev

将R中的两个列表合并到一个数据框中

来自分类Dev

熊猫基于一个表中的一列合并两个数据帧,该数据框位于另一表中的两列之间

来自分类Dev

根据熊猫索引将熊猫列从数据框合并到另一个数据框

来自分类Dev

熊猫合并两个不同长度的数据框

来自分类Dev

将两个熊猫数据框与公共数据合并

来自分类Dev

将两个数据框列中的数据合并为一列

来自分类Dev

通过匹配其列合并两个大小不同的数据框

来自分类Dev

将两个不同的Postgresql数据库合并到一个数据库中

来自分类Dev

将两个不同列表中的值顺序分配给python中数据框的一列

来自分类Dev

将两个值合并到数据框中的一个单元格中

来自分类Dev

将两个带有数据框的列表合并到一个带有合并数据框的列表中

来自分类Dev

连接两个表并将文本值合并到一列中

来自分类Dev

将两列数据框合并到一个包含所有独特案例的新列中

来自分类Dev

如何将两个不同的查询合并到一个表中?

来自分类Dev

将两个 Pandas 数据框与列值合并

来自分类Dev

熊猫:将数据框列合并到列表中

来自分类Dev

合并两个具有相似值但日期熊猫不同的不同数据框

来自分类Dev

将两个表中的数据合并到一个输出SQL中

来自分类Dev

将两个表中的数据合并到一个视图中

来自分类Dev

根据Python中的多个条件,将一列从多个数据框合并到另一数据框

来自分类Dev

如何将一列从数据框(B)合并到数据框(A),但如何使列(Y)由数据框(A)另一列中的值组织?

来自分类Dev

如何将两个ID合并到一个列中?

来自分类Dev

串联/合并/合并两个数据框,其中缺少一列

Related 相关文章

  1. 1

    如何将两个线性回归预测模型(每个数据框的子集)合并到数据框的一列中

  2. 2

    合并两个熊猫数据框(在同一列上连接)

  3. 3

    将两个大小不同的数据框合并为一个

  4. 4

    如何合并到两个熊猫数据框?

  5. 5

    将两个系列合并为数据框的一列

  6. 6

    如何将两个数据帧中的两列合并到新数据帧(熊猫)的一列中?

  7. 7

    将R中的两个列表合并到一个数据框中

  8. 8

    熊猫基于一个表中的一列合并两个数据帧,该数据框位于另一表中的两列之间

  9. 9

    根据熊猫索引将熊猫列从数据框合并到另一个数据框

  10. 10

    熊猫合并两个不同长度的数据框

  11. 11

    将两个熊猫数据框与公共数据合并

  12. 12

    将两个数据框列中的数据合并为一列

  13. 13

    通过匹配其列合并两个大小不同的数据框

  14. 14

    将两个不同的Postgresql数据库合并到一个数据库中

  15. 15

    将两个不同列表中的值顺序分配给python中数据框的一列

  16. 16

    将两个值合并到数据框中的一个单元格中

  17. 17

    将两个带有数据框的列表合并到一个带有合并数据框的列表中

  18. 18

    连接两个表并将文本值合并到一列中

  19. 19

    将两列数据框合并到一个包含所有独特案例的新列中

  20. 20

    如何将两个不同的查询合并到一个表中?

  21. 21

    将两个 Pandas 数据框与列值合并

  22. 22

    熊猫:将数据框列合并到列表中

  23. 23

    合并两个具有相似值但日期熊猫不同的不同数据框

  24. 24

    将两个表中的数据合并到一个输出SQL中

  25. 25

    将两个表中的数据合并到一个视图中

  26. 26

    根据Python中的多个条件,将一列从多个数据框合并到另一数据框

  27. 27

    如何将一列从数据框(B)合并到数据框(A),但如何使列(Y)由数据框(A)另一列中的值组织?

  28. 28

    如何将两个ID合并到一个列中?

  29. 29

    串联/合并/合并两个数据框,其中缺少一列

热门标签

归档