gpt4 book ai didi

python - 使用 pandas str.find 方法对数据框列中的字符串进行切片

转载 作者:太空宇宙 更新时间:2023-11-03 14:05:30 32 4
gpt4 key购买 nike

我有一个数据框列,它看起来像这样:

s = pd.Series(["a0a1a3", "b1b3", "c1c1c3c3"], index=["A", "B", "C"])

我可以找到 str.find 方法来在每个单元格中找到我想要的索引:

s.str.find('1').values
array([3, 1, 1])
s.str.find('3').values
array([5, 3, 5])

但是我找不到如何使用这些函数来剪切该列中的字符串。例如:

s.str[s.str.find('1').values:s.str.find('3').values].values

给予

array([ nan,  nan,  nan])

哪些是组合这些功能的正确方法?

最佳答案

这是你想要的吗?

In [87]: s.str.split('1').str[0]
Out[87]:
A a
B b
C c
dtype: object

In [88]: s.str.split('1').str[1]
Out[88]:
A a2
B b2
C c2
dtype: object

In [89]: s.str.split('1', expand=True)
Out[89]:
0 1
A a a2
B b b2
C c c2

您会在 official Pandas docs site 上找到很多有用的示例

更新:

In [203]: s = pd.Series(["a1a2", "b1b2", "c1c2", "aaaaaa1XX"], index=["A", "B", "C", "D"])

In [204]: s
Out[204]:
A a1a2
B b1b2
C c1c2
D aaaaaa1XX
dtype: object

In [205]: s.str.split('1', expand=True)
Out[205]:
0 1
A a a2
B b b2
C c c2
D aaaaaa XX

更新 2:

In [224]: s
Out[224]:
A a0a1a3
B b1b3
C c1c1c3c3
dtype: object

In [225]: s.str.extract(r'1(.*?)3', expand=False)
Out[225]:
A a
B b
C c1c
dtype: object

注意:请始终发布 源数据集和所需数据集 - 否则我们必须猜测您要实现的目标...

关于python - 使用 pandas str.find 方法对数据框列中的字符串进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43876961/

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