为了账号安全,请及时绑定邮箱和手机立即绑定

在我的数据帧上使用 pivot_table 的问题

在我的数据帧上使用 pivot_table 的问题

12345678_0001 2021-12-09 10:43:02
我正在尝试旋转我的数据框,以便我可以制作一个文档矩阵,但是我在尝试旋转我的数据框时遇到了一些错误。这是我尝试弄乱它之前的原始数据框。tidy_filter1 = pd.DataFrame(df_tweetText["text"].str.split(expand = True).stack().reset_index())tidy_filter = pd.DataFrame(tidy_filter1,index = tidy_format1["id"])tidy_filter = tidy_filter1.rename(index = tidy_filter["id"], columns = {"level_1": "num",0:"word"})tidy_filter1["level_1"] = tidy_filter1.groupby("id").cumcount()tidy_filter = tidy_filter.drop(columns = ["id"])tidy_filter = tidy_filter.rename(index = tidy_format1["id"])id                    num    word1104159474368024599    0    repmiketurner1104159474368024599    1    time1104159474368024599    2    michael1104159474368024599    3    cohen1104159474368024599    4    told1104159474368024599    5    truth1104159474368024599    6    pled1104159474368024599    7    guilty1104159474368024599    8    also1104159474368024599    9    said1104159474368024599    10    collusion现在,当我尝试在下面运行此代码时,它会中断。df_freq = tidy_filter.pivot_table(values='word', index=tidy_filter.index, columns='word', aggfunc=pd.Series.count)错误给了我KeyError: 'word'我不明白。我试图用tidy_filter['word]替换值/列,但这没有用。**编辑:我正在寻找这个输出id                   repmiketurner michael cohen told truth pled guilty also said collusion1104159474368024599         1         1       1     1   1     1     1      1   1       11104155456019357703        0          0       0     1   1     0     0      1   0       0**Edit2:所以当我输入 tidy_filter['word'] 时,它给了我一个不同的 KeyError: 'repmiketurner'
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

我认为你的pivot_table命令必须改变 - 你有columns和values交换的参数。您只需要使用columns='word'和values='num'。


这对我有用


df_freq = tidy_filter.pivot_table(columns='word',

                                    index=tidy_filter.index,

                                    values='num',

                                    aggfunc=pd.Series.count)


# Put pivot table columns in order of unique values of the 'word' column

word_unique = tidy_filter['word'].unique().tolist()

df_freq = df_freq[word_unique]


print(df_freq)

word                 repmiketurner  time  michael  cohen  told  truth  pled  guilty  also  said  collusion

id                                                                                                        

1104159474368024599              1     1        1      1     1      1     1       1     1     1          1



查看完整回答
反对 回复 2021-12-09
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我想你正在寻找 pd.crosstab

pd.crosstab(df.id,df.word)


查看完整回答
反对 回复 2021-12-09
  • 2 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信