在我的数据帧(DF)中,我需要:

  • 对于"列A"中的值==是的所有行
  • ‘Column B’中的值应为:
    • 行的数据帧‘df2’中‘列E’的值,其中‘df2’‘列D’==‘df’‘列C’

目前我有这个:

df.loc[df['Column A'] == 'Yes', 'Column B'] = df2.loc[(df2['Column D'] == df['Column C']), 'Column E']

但是,这会导致:

ValueError: Can only compare identically-labeled Series objects

我的数据帧示例:

df:
Column A   Column B   Column C
Yes                   2554072
No                    2557766
No                    261191
Yes                   2600355
Yes                   2601388
...                   ...

df2:
Column D  Column E
2554072   8
2601388   4
2604142   6
...       

Required results:
df:
Column A   Column B   Column C
Yes        8          2554072
No                    2557766
No                    261191
Yes        NoMatch    2600355
Yes        4          2601388
...                   ...

我try 将所有这些列中的值更改为字符串,并在列C中填充NaN值,但是ValueError是持久的.有什么建议吗?

推荐答案

你可以用mapwhere进行掩码:

df['Column B'] = (df['Column C']
                  .map(df2.set_index('Column D')['Column E'])
                  .where(df['Column A'].eq('Yes'))
                 )

或者,使用boolean indexing:

m = df['Column A'].eq('Yes')
df.loc[m, 'Column B'] =  (df.loc[m, 'Column C']
                          .map(df2.set_index('Column D')['Column E'])
                         )

示例:

# df
  Column A Column C
0      Yes        A
1       No        B
2      Yes        C
3       No        D
4      Yes        E
5       No        F

# df2
  Column D  Column E
0        D         0
1        E         1
2        F         2
3        A         3
4        B         4
5        C         5

# Output
  Column A Column C  Column B
0      Yes        A       3.0
1       No        B       NaN
2      Yes        C       5.0
3       No        D       NaN
4      Yes        E       1.0
5       No        F       NaN

Python相关问答推荐

这些变量是否相等,因为它们引用相同的实例,尽管它们看起来应该具有不同的值?

如何从维基百科的摘要部分/链接列表中抓取链接?

带有Postgres的Flask-Data在调用少量API后崩溃

判断两极中N(N 2)列水平是否相等

不同数据类型的Python成员变量不会在具有相同优先级的不同线程中更新

Python:MultiIndex Dataframe到类似json的字典列表

sys.modulesgo 哪儿了?

用Python获取HTML Span类中的数据

将HTML输出转换为表格中的问题

无法使用equals_html从网址获取全文

优化pytorch函数以消除for循环

当独立的网络调用不应该互相阻塞时,'

在np数组上实现无重叠的二维滑动窗口

在Django admin中自动完成相关字段筛选

Pandas Loc Select 到NaN和值列表

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

UNIQUE约束失败:customuser. username

在单次扫描中创建列表

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

导入错误:无法导入名称';操作';