【问题标题】:Loop through two pandas dataframes循环遍历两个熊猫数据框
【发布时间】:2017-01-15 11:58:59
【问题描述】:

我有两个数据框df1df2 如下所示:

df1:

Month    Count
6        314
6        418
6        123
7        432

df2:

Month  ExpectedValue
6       324
7       512
8       333

我必须遍历df1df2。如果df1['Month'] == 6,那么我必须遍历df2 以获得第6 个月的预期值。然后,我将df1 中的字段设为df1['ExpectedValue']

输出如下:

df1:

Month   Count    ExpectedValue
6        314        324 
6        418        324
6        123        324
7        432        512

循环通过 2 个数据帧是一个有效的想法吗?任何帮助将不胜感激。

【问题讨论】:

  • 对不起,应该是512

标签: loops pandas


【解决方案1】:

一般来说,除非绝对必要,否则不应遍历 DataFrame。使用已优化的内置 Pandas 函数或使用矢量化方法通常可以获得更好的性能。这通常也会产生更清晰的代码。

在这种情况下你可以使用DataFrame.merge:

df1 = df1.merge(df2, how='left', on='Month')

结果输出:

   Month  Count  ExpectedValue
0      6    314            324
1      6    418            324
2      6    123            324
3      7    432            512

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多