我正在对answer进行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
的熊猫版本。由于测试原因,我无法更新版本。
编辑: 我不是在寻找替代答案,而是担心该错误。
答案 0 :(得分:4)
我能够在var inspect = stdout.inspect();
functionUnderTest(function() {
inspect.restore();
assert.deepEqual(inspect.output, [ "foo\n" ]);
});
中重现此错误,但它似乎是一个错误(@Wen指出的错误现已在pandas '0.21.1'
中修复)。无论如何,您似乎可以通过使用pandas 0.23.4
而不是数据框(这是df[['State', 'City']].values
而不是df[['State', 'City']]
来解决它,而只是提供np.array
而不是正常的行为,您可以将其作为docs状态传递给它一个数据帧):
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