列名称为0,无法重命名或选择

时间:2019-06-26 04:28:59

标签: python pandas

我将{{1}系列}转换为同名数据框。 重新索引后,我现在有了这样的数据框:

word

在我重命名数据框后:

     index    0
0     a       A
1     b       B
2     c       C

它变成:

words.rename({'index':'word','0':'counts'},axis='columns',inplace=True)

如您所见,列名0保持不变。

然后,当我选择它时,

     word     0
0     a       A
1     b       B
2     c       C

它向我显示此错误:

words['0']

我尝试过,这不是alpha bate O,我确定我没有将它们混淆。...

请帮助!

ps:我用于创建系列的代码

KeyError: '0'

1 个答案:

答案 0 :(得分:1)

这里不需要DataFrame构造函数,而是将Series.reset_index与参数name一起使用,并为重命名index添加Series.rename_axis,以避免使用默认的index列名:< / p>

df_new = pd.DataFrame({
    'text' : ['A B', 'A C'],

})

print (df_new)
  text
0  A B
1  A C

words=(df_new['text'].str.split(expand=True)
                     .stack()
                     .value_counts()
                     .rename_axis('word')
                     .reset_index(name='counts'))

print (words)
  word  counts
0    A       2
1    B       1
2    C       1

您的解决方案使用重命名0列-它是整数,而不是string-'0'

words=df_new['text'].str.split(expand=True).stack().value_counts().reset_index()
words.rename({'index':'word',0:'counts'},axis='columns',inplace=True)

print (words)
  word  counts
0    A       2
1    B       1
2    C       1