【发布时间】:2022-01-06 16:02:42
【问题描述】:
我正在尝试使用 Pandas 单元格中的列表。也许不是最好的主意。我仍然发现 pandas.Series.str.len 方法无法正常工作,如documentation 所示。
这是我的代码:
df3=pd.DataFrame({"comas":
[
"1,2,3",
"4,5,6,7,8,9",
"7,8",
"9,10,11,12"
]
}
)
df3["split"]=df3["comas"].str.split()
正如预期的那样,我从那里获得以下数据框:
comas split
0 1,2,3 [1,2,3]
1 4,5,6,7,8,9 [4,5,6,7,8,9]
2 7,8 [7,8]
3 9,10,11,12 [9,10,11,12]
现在我想知道每个列表的长度。
df3["split"].str.len()
我明白了
0 1
1 1
2 1
3 1
Name: split, dtype: int64
我在文档中看到的是
s = pd.Series(['dog',
'',
5,
{'foo' : 'bar'},
[2, 3, 5, 7],
('one', 'two', 'three')])
s
0 dog
1
2 5
3 {'foo': 'bar'}
4 [2, 3, 5, 7]
5 (one, two, three)
dtype: object
s.str.len()
0 3.0
1 0.0
2 NaN
3 1.0
4 4.0
5 3.0
dtype: float64
有人可以向我解释一下示例系列的第四个元素中的列表项和我的系列有什么区别吗?我正在使用熊猫版本 1.3.3
提前谢谢你!
编辑:
RoseGod 是对的,我没有在拆分中包含分隔符。我很困惑,因为 Jupyter 以几乎相同的方式显示数据框中的元素,无论它是否实际分离
df3.loc[0]
comas 1,2,3
split [1,2,3]
split_separator [1, 2, 3]
Name: 0, dtype: object
如果我得到一个单元格,它确实将元素显示为单个字符串:
df3.loc[0,"split"]
['1,2,3']
df3.loc[0,"split_separator"]
['1', '2', '3']
【问题讨论】: