什么是“全部”[col]。结构拆分(“;”,2).str“输出?

2024-09-25 10:33:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图拆分一个列,它的形状是:“StringA;StringB;StringC”with“;”。我最初试过:

df[col_a], df[col_b], df[col_c] = df[col].str.split(",", 2)

但要知道,可能并不总是有3个字符串,有很多行的形状是“StringA;StringB”。我在网上找到了如下解决方案:

df[col_a], df[col_b], df[col_c] = df[col].str.split(",", 2).str

这行代码运行得很好。它只是给了col\c NaN的值。我有点搞不懂加“str”是怎么回事。你知道吗

谢谢你的帮助!你知道吗


Tags: 字符串dfwithcolnan解决方案split形状
1条回答
网友
1楼 · 发布于 2024-09-25 10:33:30

.str是一个存取器。你知道吗

基本上,它允许您将对象的Series具体地视为iterables的Series(在本例中是列表)。你知道吗

应用split之后,df[col中的每个元素现在都包含一个列表。例如,您可以执行df[col].str.split(',').str[0],它将为您提供df[col]中每个列表中的第一个元素。你知道吗

通过将.str的结果分配给单个Series,您正在执行tuple解包的向量化形式,就像a, b, c = (1, 2, 3),但是对于Series的每个元素。你知道吗

示例:

>>> data = [['first;second;third'], ['first;second'], ['second;third;fourth'], ['fourth']]
>>> 
>>> series = pd.DataFrame(data, columns=['string'])['string']
>>> split = series.str.split(';')
>>> split
0     [first, second, third]
1            [first, second]
2    [second, third, fourth]
3                   [fourth]
Name: string, dtype: object

>>> split.str[0]
0     first
1     first
2    second
3    fourth
Name: string, dtype: object

另见我的答案here。你知道吗

相关问题 更多 >