python - 循环数据框并根据 Pandas 中的子字符串选择行
问题描述
我有一个包含 5 列的数据框,其中之一是“TABLE_NAME”。该列具有以下值:
A_value1
B_value1
B_value2
A_value150
我只想打印以“A_”开头的那些。
我试过这个,但它返回以下内容:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
这是代码:
value = 'A_'
for index, row in df.iterrows():
if df.loc[df['TABLE_NAME'].str.contains(value)]:
print('y')
else:
print('n')
解决方案
您可以使用 str.startswith:
df.loc[df.TABLE_NAME.str.startswith('A_')]
如果你想使用你的 for 循环,你可以这样做:
value = 'A_'
for index, row in df.iterrows():
if row['TABLE_NAME'].startswith(value):
print('y')
else:
print('n')
推荐阅读
- routing - 比较 here-API-routes:如果部分路线相同,那么腿部航路点是否相同?
- angular7 - 在 Ionic 4,角度 7 中重新加载当前页面
- python - 尴尬的并行For循环,子进程调用
- discord - 向对机器人消息问题作出反应的用户添加角色
- asp.net-core - 当 API ResponseCache NoStore = true 时,HTTP 请求是否被缓存?在特定的 API 端点上
- java - 从List构建树关系图的有效方法
- reactjs - 如何用“链接”包装每个 antd 表行?
- visual-studio-2019 - 在 VS2019 中从 VS 2017 恢复编辑器颜色
- sql-server - 需要根据数据的值将数据透视到 MS SQL 中的对应列
- c# - 根据值获取渐变中的颜色值