当值为“列表”时,“pandas.Series.str”如何工作?

How `pandas.Series.str` works when values are `list`?

这是如何运作的?如果它将每个项目转换为字符串,我应该得到第一个字符,如 "[1,2]"[0] ----> '[' 但它却被视为 list,如何?

>>> df = pd.DataFrame({'a':[[1,2],[2,3]]})
>>> df.a.str[0]
0    1
1    2
Name: a, dtype: int64

它有效,因为 strings 和 lists 是可迭代的。这意味着 .str[0] return 字符串的第一个值,列表的第一个值,可迭代的第一个值。

什么是iterable:

一个ITERABLE是:

  • 任何可以循环的东西(即你可以循环一个字符串或文件)或
  • 任何可以出现在 for 循环右侧的东西:for x in iterable: ...
  • 任何你可以用 iter() 调用的东西,它将 return 一个 ITERATOR:iter(obj)
  • 一个定义 __iter__ 的对象,return 是一个新的 ITERATOR, 或者它可能有一个适合索引查找的 __getitem__ 方法。