Python 使用unstack()时将数据帧值应用于数据帧
在这方面似乎有很多,但我找不到我需要的。我正在使用unstack()创建一个数据框,可以绘制其中的项目 开始数据帧示例:Python 使用unstack()时将数据帧值应用于数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,在这方面似乎有很多,但我找不到我需要的。我正在使用unstack()创建一个数据框,可以绘制其中的项目 开始数据帧示例: Date word tf_idf 2015-01-02 grout 0.0016774129439329863 2015-01-02 rhrsw 0.0015957287173067212 2015-01-02 county 0.001501862322171032 2015-01-02 limestone 0.0015018623221
Date word tf_idf
2015-01-02 grout 0.0016774129439329863
2015-01-02 rhrsw 0.0015957287173067212
2015-01-02 county 0.001501862322171032
2015-01-02 limestone 0.001501862322171032
2015-01-02 lgt 0.0014079959270353424
一个更好的例子是单词tf_idf值随时间变化(这就是我需要绘制的):
使用在线教程,我可以通过以下方式实现这一点:
plotFrame=plotDf.groupby(['Date','word']).count()['tf_idf'].unstack()
收益率:
word word2 word3
date 1 nan nan
date2 nan 1 1
date3 nan nan 1
然而,这给了我字数。我需要得到该特定单词的实际值。我试过:
plotFrame=plotDf.groupby(['Date','word']).apply(plotDf.loc['Index'].at['tf\u idf'])['tf\u idf'].unstack()
和
plotFrame=plotDf.groupby(['Date','word'])。应用(plotDf.loc['tf_idf'])['tf_idf'])。取消堆栈()
和
plotFrame=plotDf.groupby(['Date','word'])。应用(plotDf.at['tf_idf'])['tf_idf'])。取消堆栈()
与其他一些apply().loc
组合一起,除了Series not hashable/Key/Numpy数组之外没有其他输出,是不可调用的类型错误
如何检索特定单词处的tf_idf
值并将其应用于新数据帧
我想:
word word2 word3
date 0.012 nan nan
date2 nan 0.019 0.03
date3 nan nan 0.01
以下是我的方法,它看起来并不完美,但解决了您的问题:
如何检索特定单词的tf_idf值并应用它
到我的新数据帧
输出:
以下是我的方法,它看起来并不完美,但解决了您的问题:
如何检索特定单词的tf_idf值并应用它
到我的新数据帧
输出:
已解决。使用枢轴:
plotDf.pivot(index='Date',columns='word',values='tf_idf').plot(ax=ax)
已解决。使用枢轴:
plotDf.pivot(index='Date',columns='word',values='tf_idf').plot(ax=ax)
您能否至少共享部分数据帧?请参阅“编辑jjI”一书,该书采用了一种易于使用的格式,目的是能够复制/粘贴数据并使其尽快工作。另外,您能否解释一下数据的用途,为什么您需要这种特定格式的数据?我不确定如何获取数据以及您需要什么格式。我需要这种格式,这样我可以随着时间的推移绘制每个单词、值对。你能至少共享数据框的一部分吗?请看编辑jjI的意思是使用一种易于使用的格式,目标是能够复制/粘贴它并尽快使其工作。另外,你能解释数据的用途吗,为什么你需要这种特殊的格式?我不太清楚如何得到它,你想要什么格式。我需要它的格式,这样我就可以随着时间的推移绘制每个单词、值对
word word2 word3
date 0.012 nan nan
date2 nan 0.019 0.03
date3 nan nan 0.01
from datetime import datetime
import pandas as pd
today = datetime.now()
today = today.strftime("%d/%m/%Y")
c = {'Date': today, 'word':['grout','rhrsw','county','limestone','lgt'],"SITEID": ['SQN','BFN','BFN','BFN','BFN'],
'tf_idf': [0.0016774129439329863,0.0015957287173067212,0.001501862322171032,0.001501862322171032,0.0014079959270353424]}
dframe = pd.DataFrame(data = c)
df = pd.DataFrame(dframe.set_index('tf_idf').stack())