python - 在我的数据框上使用 pivot_table 的问题
问题描述
我正在尝试旋转我的数据框,以便制作文档矩阵,但是在尝试旋转我的数据框时遇到了一些错误。这是我尝试弄乱它之前的原始数据框。
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 word
1104159474368024599 0 repmiketurner
1104159474368024599 1 time
1104159474368024599 2 michael
1104159474368024599 3 cohen
1104159474368024599 4 told
1104159474368024599 5 truth
1104159474368024599 6 pled
1104159474368024599 7 guilty
1104159474368024599 8 also
1104159474368024599 9 said
1104159474368024599 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 collusion
1104159474368024599 1 1 1 1 1 1 1 1 1 1
1104155456019357703 0 0 0 1 1 0 0 1 0 0
**Edit2:所以当我输入 tidy_filter['word'] 时,它给了我一个不同的 KeyError: 'repmiketurner'
解决方案
我想你正在寻找pd.crosstab
pd.crosstab(df.id,df.word)
推荐阅读
- date - 以 15 分钟为增量的堆积柱形图
- html - 在 React 中动态使用图像
- python - 多列数据框的复杂字典
- c++ - Decompose ligatures (preferably with ICU)
- arrays - 通过 3-D xarray.Dataset 绘制切片
- python - 连接到 Veeva Vault (Veeva Align)
- json - 在 postgresql 中更新嵌套 json 中的值
- python - “熊猫”没有属性“tslib”
- powershell - Powershell:如何创建指向网站的链接
- python - 矩阵映射的python代码问题