gpt4 book ai didi

python - 从 Pandas 数据框中提取单个值

转载 作者:行者123 更新时间:2023-12-03 12:09:36 25 4
gpt4 key购买 nike

在 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首先是 Series,然后按 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

关于python - 从 Pandas 数据框中提取单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56187039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com