将一列中的值替换为另一列的特定实例

2024-10-01 07:12:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我是熊猫新手,不知道怎么做:

我有一个包含多个列的数据帧(df)。一列被称为

OldCat = ['a-nn', 'bb-nm', 'ab-pp', 'ba-nn', 'cc-nm', 'ca-mn']

现在我想创建一个新列,以新的方式组织/分类OldCat(NewCat)。具体来说,我想在OldCat中查找包含a(在开头)、ba或ca的字符串 j=“^a | ba | ca” 然后在OldCat包含j的行中用'A'替换NewCat中的nan。 在R中是这样的:

^{pr2}$

由于R对于我的非常大的数据集相对较慢,我决定切换到pandas,但我不确定如何得到相同的结果。 干杯


Tags: 数据dfab方式nnppcacc
1条回答
网友
1楼 · 发布于 2024-10-01 07:12:33

您可以使用向量化的str.extract返回匹配的fillna,用字符串'nan'替换{}:

In [119]:
df['NewCat'] = df['OldCat'].str.extract('(^a|ba|ca)', expand=False).fillna('nan')
df

Out[119]:
  OldCat NewCat
0      a      a
1     bb    nan
2     ab      a
3     ba     ba
4     cc    nan
5     ca     ca

编辑

IIUC然后可以使用str.containsloc来设置包含字符串的行:

^{pr2}$

相关问题 更多 >