python - 从熊猫数据框中提取单个值
问题描述
在 Python 中,我试图从 Pandas 数据框中提取单个值。我确切地知道该值包含什么,我只需要在数据框中的任何位置找到它并提取它。
例如,在下面的数据框中:
df = pd.DataFrame(
{0: ['BA1234', 'CA:1234', 'DA','DA1234', 'EX DA', 'CA1234'],
1: ['BA1234', 'CA:1234', 'DA','CA1234', 'EX DA', 'CA1234'],
2: ['BA1234', 'CA:1234', 'DA','CA1234', 'EX DA', 'CA1234']})
我想提取包含两个字母 'DA' 和后面正好 4 个数字的字符串。
我一直在用面具尝试这个:
mask = pd.DataFrame(np.column_stack([df[col].str.contains('^DA\d{4}', na = False) for col in df]))
这似乎有效:
da_value = df[mask]
da_value
0 1 2
0 NaN NaN NaN
1 NaN NaN NaN
2 NaN NaN NaN
3 DA1234 NaN NaN
4 NaN NaN NaN
5 NaN NaN NaN
但是,如何从数据框中提取值?有没有更好/更简单的方法来做到这一点?
编辑:我真正想要的输出是
da_value = 'DA1234'
解决方案
先用DataFrame.stack
for ,然后用withSeries
过滤:boolean indexing
Series.str.contains
s = df.stack()
a = s[s.str.contains(r'^DA\d{4}', na=False)].tolist()
如果需要列表中的第一个值,您可以选择:
print (a[0])
DA1234
或通用解决方案,如果可能不存在值,则添加默认值:
print (next(iter(a), 'no match'))
DA1234
推荐阅读
- javascript - 覆盖 Object.entries() 的类型会导致意外错误
- reactjs - 重新导出所有内容均未按预期工作 - 导入另一个文件时出现问题
- mongodb - 如何从 mongodb 中的数组和 groupBy 中过滤值?
- reactjs - 如何更新 useEffect 挂钩中异步函数内的数组?
- c# - 如何在 C# .Net 中验证 keycloak 的 JWT 令牌?
- javascript - 如何在打字稿中转换 JSON 数据数组中的 JSON 数据?
- python - 丢弃特定类 Deeplabv3 的分割
- typescript - 类型“IntrinsicAttributes & DeliveryInfoProps”上不存在属性“href”
- amazon-web-services - 通过命令行将 Visual Studio 项目部署到 AWS Fargate
- c# - 如何在 c# blazor 网页中更新实时日期时间