Python 用分隔符连接数据帧的列
我以88票的优势关注这一点,但它不再有效:Python 用分隔符连接数据帧的列,python,python-3.x,pandas,Python,Python 3.x,Pandas,我以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='
>>> 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
。由于测试原因,我无法更新版本
编辑:
我不是在寻找替代答案,但担心的是错误。我能够在
pandas'0.21.1'
中重现此错误,但它似乎是一个错误(@Wen指出的错误现在已在pandas'0.23.4
中修复)。不管怎样,您似乎可以通过使用df[[['State','City']]值来绕过它,而不仅仅是df[['State','City']]
,即通过提供np.array
而不是数据帧(这不是正常的行为,因为您可以将状态传递给它一个数据帧):
无法在0.23.4中复制。对我来说很好预期的输出是什么?您是否正在寻找df[['Country','State','City']]。apply('-'.join,axis=1)?是的,这是使用给定分隔符连接列,但我更关心的是错误,而不是替代方法。我认为他们在版本0.23.4中解决了问题。这可能有助于使用旧版本pandas的用户重新打开它+1.
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