【问题标题】:How iterate pandas dataframe if condition is met then add new rows to df [duplicate]如果满足条件,如何迭代熊猫数据框,然后将新行添加到 df [重复]
【发布时间】:2021-09-10 12:12:20
【问题描述】:

如果在 df1 中也找到硬币名称,我想迭代 df2['name]' 的每一行我想在 df2 中使用 df1 的标签名称创建一个新行。或者创建一个最简单的新 Df3。

我尝试了很多解决方案,例如迭代,但我没有运气

for row in df2['name']:
  
   for row2 in df1['name']:
   
      if row == row2:
        ...cannot complete this step...

我的主要问题是我不知道解决此问题的最佳方法是什么。迭代与否?我确信 pandas 有更好的方法,但我无法解决。

我有一个看起来像这样的 pandas 数据框

df1

name tags
1 bitcoin mineable
2 ethereum pow

还有第二个这样的

df2

name value
1 bitcoin 0
2 ethereum 0.242424

我要创建的 Df3

name value tags
1 bitcoin 0 mineable
2 ethereum 0.242424 pow

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

无需重复

import pandas as pd
from io import StringIO

df1 = pd.read_csv(StringIO("""name  tags
bitcoin     mineable
ethereum    pow"""), sep="\s+")


df2 = pd.read_csv(StringIO("""name  value
bitcoin     0
ethereum    0.242424"""), sep="\s+")

>>> df1.merge(df2, on="name")
       name      tags     value
0   bitcoin  mineable  0.000000
1  ethereum       pow  0.242424

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2020-06-08
    • 2020-11-09
    • 1970-01-01
    • 2016-01-25
    • 2023-01-31
    • 2019-09-06
    相关资源
    最近更新 更多