Python 计算一年内包含特定单词的推文频率

Python 计算一年内包含特定单词的推文频率,python,pandas,dataframe,twint,Python,Pandas,Dataframe,Twint,我试着计算一年中一个单词的tweet数量,同时写下每天的tweet数量和tweet数量并存储,而不是用“日期”和“频率”存储在CSV文件中。这是我的代码,但运行了一段时间后,我不断收到一个错误 import pandas as pd import twint import nest_asyncio from datetime import datetime,timedelta bugun = '2020-01-01' yarin = '2020-01-02' df = pd.DataFra

我试着计算一年中一个单词的tweet数量,同时写下每天的tweet数量和tweet数量并存储,而不是用“日期”和“频率”存储在CSV文件中。这是我的代码,但运行了一段时间后,我不断收到一个错误

import pandas as pd
import twint
import nest_asyncio
from datetime import datetime,timedelta


bugun = '2020-01-01'
yarin = '2020-01-02'

df = pd.DataFrame(columns=("Data","Frequency")) 




for i in range(365):
    
    file = open("Test.csv","w")
    file.close()
    
    bugun = (datetime.strptime(bugun, '%Y-%m-%d') + timedelta(days=1)).strftime('%Y-%m-%d')

    yarin =(datetime.strptime(yarin, '%Y-%m-%d') + timedelta(days=1)).strftime('%Y-%m-%d')

    nest_asyncio.apply()
    
    c = twint.Config()
    c.Search = "Chainlink"

    #c.Hide_output=True
    c.Since= bugun
    c.Until= yarin

    c.Store_csv = True
    c.Output = "Test.csv"
    c.Count = True 

    twint.run.Search(c)


    data = pd.read_csv("Test.csv")
    frequency = str(len(data))
    
    #d = {"Data": [bugun], "Frequency": [frequency]}

    #d_f = pd.DataFrame(data=d)
    
    #df = df.append(d_f, ignore_index=True)
    

    df.loc[i] = [bugun] + [frequency]
    df.to_csv (r'C:\Users\serap\Desktop\CRYPTO 100\Chainlink.csv',index = False, header=False)
我得到的错误是

  File "C:\Users\serap\Desktop\CRYPTO 100\CODES\Binance_Coin\Binance Coin.py", line 47, in <module>
    data = pd.read_csv("Test.csv")

  File "C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\parsers.py", line 605, in read_csv
    return _read(filepath_or_buffer, kwds)

  File "C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\parsers.py", line 457, in _read
    parser = TextFileReader(filepath_or_buffer, **kwds)

  File "C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\parsers.py", line 814, in __init__
    self._engine = self._make_engine(self.engine)

  File "C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\parsers.py", line 1045, in _make_engine
    return mapping[engine](self.f, **self.options)  # type: ignore[call-arg]

  File "C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site-packages\pandas\io\parsers.py", line 1893, in __init__
    self._reader = parsers.TextReader(self.handles.handle, **kwds)

  File "pandas\_libs\parsers.pyx", line 521, in pandas._libs.parsers.TextReader.__cinit__

EmptyDataError: No columns to parse from file
文件“C:\Users\serap\Desktop\CRYPTO 100\code\Binance\u Coin\Binance Coin.py”,第47行,在
数据=pd.read\u csv(“Test.csv”)
文件“C:\Users\serap\AppData\Local\Programs\Python\38\lib\site packages\pandas\io\parsers.py”,第605行,以read\U csv格式
返回读取(文件路径或缓冲区,kwds)
文件“C:\Users\serap\AppData\Local\Programs\Python\38\lib\site packages\pandas\io\parsers.py”,第457行,已读
parser=TextFileReader(文件路径或缓冲区,**kwds)
文件“C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site packages\pandas\io\parsers.py”,第814行,在uu init中__
self.\u engine=self.\u make\u engine(self.engine)
文件“C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site packages\pandas\io\parsers.py”,第1045行,位于“make\u引擎”中
返回映射[引擎](self.f,**self.options)#类型:忽略[调用参数]
文件“C:\Users\serap\AppData\Local\Programs\Python\Python38\lib\site packages\pandas\io\parsers.py”,第1893行,在uu init中__
self.\u reader=parsers.TextReader(self.handles.handle,**kwds)
文件“pandas\\ libs\parsers.pyx”,第521行,在pandas.\u libs.parsers.TextReader.\uu\cinit中__
EmptyDataError:没有要从文件中分析的列
感谢您的帮助:)

阅读教程后,我认为您最好让Twint进行迭代:

c=twint.Config()
c、 Search=“Chainlink”
c、 自=“2020–01–01”
c、 直到=“2021-01-01”
c、 Store_csv=True
c、 Output=“Test.csv”
c、 计数=真
twint.run.Search(c)
现在,您可以循环CSV输出:

data = pd.read_csv("Test.csv")
# ...
直到现在,我还没有找到关于CSV输出的详细文档,但是twint源代码()告诉我们,对于CSV,如果文件已经存在,则会追加输出。因此,您可能必须先截断它或删除现有文件。这方面的一个有效选项可能是

open(`Test.csv`, 'w').close()

。。。这与您所做的基本相同,但没有引入另一个变量。

您是否也可以重新表述一下描述,目前还不清楚您在尝试什么。什么是输入,什么是输出,你认为一个与另一个有什么关系?你有进一步的了解吗?我尝试了twint,但没有成功。这可能是因为该软件包的开发人员与twitter失去了联系吗?test.csv的主要目的是存储当天的数据,打开/关闭则是擦除其中的数据,这样就可以在第二天使用,而不会与前几天重叠。这样做的更好方法是什么?请参阅更新的答案。您是否有我找不到的文档部分的链接(关于CSV输出的追加与重写)?