在系列上使用join()时出现键错误0

时间:2018-11-26 07:12:48

标签: python pandas dataframe join

我有这个名为"tokenized_data"的熊猫系列

enter image description here

现在我正在尝试执行以下操作:

for i in range(len(tokenized_data)):
    tokenized_data[i] = ' '.join(tokenized_data[i])

但是,我得到了

  

键错误:0

在这方面的任何帮助将不胜感激。不知道我要去哪里错了。

谢谢。

2 个答案:

答案 0 :(得分:2)

您需要:

tokenized_data =  tokenized_data.str.join(' ')

或者:

tokenized_data =  tokenized_data.apply(' '.join)

您的解决方案的问题是循环tokenized_data[i]无法选择范围值,因为Series的索引值不同。

tokenized_data = pd.Series([['would','have','hard'], ['worth','seek']], index=[77,101])

for i in range(len(tokenized_data)):
    print (i)
    #cannot select index 0, because not exist (indices are `77` and `101`)
    print (tokenized_data[i])

按位置选择应该可以在这里工作,但是最好使用Series.str.join

for i in range(len(tokenized_data)):
    tokenized_data.iloc[i] = ' '.join(tokenized_data.iloc[i])

答案 1 :(得分:0)

感谢Jezrael告诉我我要去哪里错了。

在...之后,我只是对代码做了微小的改动。

<> tokenized_data= tokenized_data.reset_index(drop=True)

这有助于重置索引,而我的代码就像奇迹一样。