【问题标题】:Why does Pandas complain about 'n' being an invalid keyword argument for the split function?为什么 Pandas 抱怨 'n' 是 split 函数的无效关键字参数?
【发布时间】:2021-07-14 22:03:49
【问题描述】:

我正在尝试将具有全名的字符串拆分为名字和姓氏。而且因为这里的一些姓氏由几个单词组成,所以我尝试使用参数“n”来限制拆分的数量。

当我尝试这段代码时:

name = df.loc[28,'name'].split()

它有效。例如,它将“Jan van den Berg”拆分为“Jan, van, den, Berg”。 但我需要“Jan, van den Berg”。因此,我尝试使用参数“n”来限制拆分次数,如this guide 中所述。 (严格来说,该指南适用于系列,但我发现它适用于数据帧,只要我不使用参数。)

但这就是我的问题开始的地方:根据该指南,我应该能够使用此代码,并且它应该只拆分字符串一次:

name = df.loc[28,'name'].split(n=1)

但事实并非如此。它给了我以下错误信息:

"'n' is an invalid keyword argument for split()"

那么我错过了什么?只要您不使用参数,拆分功能是否仅适用于数据帧?因为看起来我使用的代码与示例完全相同,但它拒绝工作。

【问题讨论】:

  • 你使用的是哪个版本的 pandas 和 numpy?

标签: python pandas split


【解决方案1】:

df.loc[28,'name'] 返回一个字符串(不是 DataFrame,不是 Series)。

Python 字符串 split() 方法没有 n 参数。它有一个等效的 maxsplit 参数。

因此,您可以在 Series 上执行 Pandas str 方法,例如:

df['name'].str.split(n = 1)

或者使用 Python str 方法,例如:

df.loc[28,'name'].split(maxsplit = 1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多