Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用unstack()时将数据帧值应用于数据帧_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用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

在这方面似乎有很多,但我找不到我需要的。我正在使用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.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())