str(Series).split() 和 Series.str.split() 有什么区别?

3
我想从概念上了解为什么在使用str(Series).split()和Series.str.split()分割日期这个series对象时会有输出差异。str(Series).split()并没有给我想要的结果,而另一种方法使用Series.str.split(),但是我听说使用[dot]访问器不被看好。我在网上搜索,但没有得到令人满意的答案。有人能帮我并解释一下吗?我正在使用以下系列对象。

df5 = pd.Series(["04/20/2009", "04/20/09", "4/20/09", "4/3/09", "Mar-20-2009", "Mar 20, 2009", "March 20, 2009", "Mar. 20, 2009", "Mar 20 2009", "20 Mar 2009","20 March 2009", "20 Mar. 2009", "20 March, 2009", "Mar 20th, 2009", "Mar 21st, 2009", "Mar 22nd, 2009", "Feb 2009", "Sep 2009", "Oct 2010", "6/2008","12/2009", "2009", "2010"])


4
str(Series)会返回序列的字符串表示形式,因此str(Series).split()会将该字符串分割成多个部分。而Series.str.split()则会将序列中的每个单元格都看作字符串并将这些字符串分割开来。请注意,翻译时需保持原意,同时使语言通俗易懂。 - Quang Hoang
2
此外,“.”访问器仅在用于访问数据框中的列名时被反对,而在访问其他内置属性时不会受到反对。原因是当使用带有空格的列时,“.”访问器无法正常工作,例如:df['col name']可以正常工作,而df.col name则无法正常工作。 - anky
1个回答

1
str(series).split()函数类似于将系列对象连接成一个字符串,然后在指定的分隔符(在本例中为空格)上分割它。

另一方面,series.str.split()将类似于将系列对象的每个字符串映射到拆分函数,这将为原始系列对象中的每个字符串提供一个包含字符串列表的系列对象。

这里是官方文档,了解有关series.str.split()的更多信息。

此外,当点运算符用于访问数据帧列时,通常会被反对,因为如果列名中有空格,则无法使用该运算符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接