只有一小部分数据帧被合并到 python 中



我的问题很简单。我有一个熊猫数据帧,其中包含124957条不同的推文(与中心主题相关(。问题是每个日期都有超过 1 条推文(每天大约 300 条(。

我的目标是对每天的推文进行情绪分析。为了解决这个问题,我正在尝试将同一天的所有推文合并为一个字符串(对应于每个日期(。

为此,我尝试了以下方法:

indx=0
get_tweet=""
for i in range(0,len(cdata)-1):
get_date=cdata.date.iloc[i]
next_date=cdata.date.iloc[i+1]
if(str(get_date)==str(next_date)):
get_tweet=get_tweet+cdata.text.iloc[i]+" "
if(str(get_date)!=str(next_date)):
cdata.loc[indx,'date'] = get_date
cdata.loc[indx,'text'] = get_tweet
indx=indx+1
get_tweet=" "
df.to_csv("/home/development-pc/Documents/BTC_Tweets_1Y.csv")

我的问题是,实际上只有一小部分数据样本被转换为我选择的格式。

数据帧的图像

我不知道它是否重要,但数据帧由三个单独的数据集组成,我使用"pd.concat"将它们合并为一个。之后,我按日期(升序(对新创建的数据帧进行排序,并在索引反转时重置索引(上次输入 (2020-01-03( = 0,第一个输入 (2019-01-01( = 124958(。

提前感谢, 菲利普斯

在不进入您使用的循环的情况下(认为您只是连接了两个第一个实例,不确定(,您可以使用 groupby 并应用,下面是一个示例:

# create some random data for example
import pandas as pd
import random
import string
dates = random.choices(pd.date_range(pd.Timestamp(2020,1,1), pd.Timestamp(2020,1,6)),k=11)
letters = string.ascii_lowercase
texts = [' '.join([''.join(random.choices(letters, k=random.randrange(2,10))) for x in 
range(random.randrange(3,12))]) for x in range(11)]
df = pd.DataFrame({'date':dates, 'text':texts})
# group
pd.DataFrame(df.groupby('date').apply(lambda g: ' '.join(g['text']))) 

最新更新