python - For循环和一个系列的真值是不明确的
问题描述
在这里查看了类似查询的答案,但仍然不确定。下面的代码产生:
for i in range(len(df)):
if df[0]['SubconPartNumber1'].str.isdigit() == False :
df['SubconPartNumber1'] = df['SubconPartNumber1'].str.replace(',', '/', regex = True)
df['SubconPartNumber1'] = df['SubconPartNumber1'].str.replace(r"\(.*\)-", '/', regex = True)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
解决方案
在熊猫中,如果可能的话,你可以避免循环。您的解决方案应替换为boolean mask
with ~
for invert== False
并传递给DataFrame.loc
:
m = df['SubconPartNumber1'].str.isdigit()
df.loc[~m, 'SubconPartNumber1'] = df.loc[~m, 'SubconPartNumber1'].str.replace(',', '/', regex = True).str.replace(r"\(.*\)-", '/', regex = True)
但是因为 numeric 只有数字我认为这里不需要掩码,所以正则表达式也应该加入|
for or
,regex=True
是默认参数,所以应该省略:
df = pd.DataFrame({'SubconPartNumber1':['345','aaa,','(bbb)-ccc']})
print (df)
SubconPartNumber1
0 345
1 aaa,
2 (bbb)-ccc
df['SubconPartNumber1'] = df['SubconPartNumber1'].str.replace(r",|\(.*\)-", '/')
print (df)
SubconPartNumber1
0 345
1 aaa/
2 /ccc
推荐阅读
- javascript - R Highcharter自定义图例以仅显示某些值
- python - 通过 Django ManyToMany Relation 使用 Distinct 从原始 SQL 进行 Django 查询
- css - 可以在不重新设置颜色的情况下覆盖 CSS 框阴影距离吗?
- react-native - 用于 JWT 刷新令牌的 react-native 中的 httpOnly cookie
- azure-devops - 使用 Azure DevOps Pipeline(Linux 代理)的 Synopsys Coverity 配置
- android - Androidx Kotlin 使用 Gson,需要创建一个嵌套的 GSON 数据类
- python - 我有一个烧瓶脚本来创建 API,但无法使用 Windows 直通连接到 SQL Server Express
- python - 我可以用 zip() 对包含多个列表的列表进行变异吗?
- php - 将完成的 html 和 css 标头放在 Wordpress php 文件中的位置
- reactjs - 使用 Three.JS 的 ReactJS 应用程序。如何渲染 VRButton?