如何使用以下数据集创建多索引数据帧?

2024-05-13 01:06:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须创建一个多索引数据帧,对包含在两个不同数据帧中的数据进行调节。 对于第二个数据帧(Date)的每个索引,对于第一个数据帧的每一行,如果第一个数据帧的Date列中的值等于第二个数据帧的索引,则创建一个多索引数据帧,其中包含每个日期、每天发布的tweet数和每一行的特征。你知道吗

这是第一个包含Twitter数据的数据帧:

        Date            Full text   Retweets    Likes
333     2018-04-13  RT @Tesla...    2838             0
332     2018-04-13  @timkhiggins... 7722             40733
331     2018-04-13  @TheEconomist.. 1911             18634

这是特斯拉股票市场的第二个数据框:

                Open        High     Low         Close  Volume       Gap
Date                        
2018-04-13  283.000000  296.859985   279.519989  294.089996 8569400  11.089996
2018-04-14  303.320000  304.940002   291.619995  291.970001 7286800  -11.349999
2018-04-25  287.760010  288.000000   273.420013  275.010010 8945800  -12.750000

这就是我所尝试的:

for i in TeslaData.index:
    for row in sortedTweetsData.iterrows():
        if row[1]==i:
            NumTweetsByDay+=1
            for num in NumTweetsByDay:
                idx=pd.MultiIndex.from_product([[i],[NumTweetsBy]])
                colum=col
                df= pd.DataFrame(row,idx,column)

我要查找的输出如下:

Date        Number of Tweets    Full text       Retweets    Likes

2018-04-13        1              RT @Tesla...    2838        0
                  2              @timkhiggins... 7722        40733
                  3              @TheEconomist.. 1911        18634

Tags: 数据textinfordatefullrowlikes
1条回答
网友
1楼 · 发布于 2024-05-13 01:06:05

如果我理解正确的话,如果股票数据集中有相同日期的条目,那么您希望按日期过滤twitter数据。你知道吗

可以使用isin()执行此操作:

# convert datatypes first:
sortedTweetsData['Date'] = pd.to_datetime(sortedTweetsData['Date'])
TeslaData.index = pd.to_datetime(TeslaData.index)

# do filtering
df = sortedTweetsData[sortedTweetsData['Date'].isin(TeslaData.index.values)]

接下来,您可以确定每个组有多少条推文:

groupsizes = df.groupby(by='Date').size()

并使用它来构建元组列表,定义多重索引(可能有一种更优雅的方法):

tups = [(ix, gs + 1) for ix in groupsizes.index.values for gs in range(groupsizes[ix])]

最后:

df.index = pd.MultiIndex.from_tuples(tups, names=['Date', 'Number of Tweets'])

相关问题 更多 >