2

我正在以 88 个赞成票关注这个答案,但它不再起作用了:

>>> df = pd.DataFrame(
     [['USA', 'Nevada', 'Las Vegas'],
      ['Brazil', 'Pernambuco', 'Recife']],
     columns=['Country', 'State', 'City']
 )
df['AllTogether'] = df['Country'].str.cat(df[['State', 'City']], sep=' - ')

我得到错误:

    raise ValueError("Did you mean to supply a `sep` keyword?")
ValueError: Did you mean to supply a `sep` keyword?

不确定自发布答案以来发生了什么变化。

我有熊猫版本的0.22.0. 由于测试原因,我无法更新版本。

编辑:我不是在寻找替代答案,但担心的是错误。

4

1 回答 1

6

我能够在 中重现此错误pandas '0.21.1',但它似乎是一个错误(@Wen 指出现在已在 中修复pandas 0.23.4)。无论如何,您似乎可以通过使用df[['State', 'City']].values而不是 just来解决它df[['State', 'City']]通过提供 anp.array而不是数据框(这不是正常行为,看到文档状态您可以将其传递给数据框):

df['AllTogether'] = df['Country'].str.cat(df[['State','City']].values,sep=' - ')
>>> df
  Country       State       City                  AllTogether
0     USA      Nevada  Las Vegas    USA - Nevada - Pernambuco
1  Brazil  Pernambuco     Recife  Brazil - Las Vegas - Recife
于 2018-10-29T21:43:58.107 回答