转换单指数大熊猫数据帧到多指数
问题描述:
我有以下结构的数据帧:转换单指数大熊猫数据帧到多指数
df.columns
Index(['first_post_date', 'followers_count', 'friends_count',
'last_post_date','min_retweet', 'retweet_count', 'screen_name',
'tweet_count', 'tweet_with_max_retweet', 'tweets', 'uid'],
dtype='object')
的鸣叫内部系列,每个小区是一个包含所有鸣叫的另一个数据帧用户。
df.tweets[0].columns
Index(['created_at', 'id', 'retweet_count', 'text'], dtype='object')
欲该数据帧转换成一个多帧索引,基本上通过破坏含有鸣叫的单元格。一个索引将是uid,另一个将会是id里面的tweet。
我该怎么做?
答
所以从DF,您有包含DF鸣叫的鸣叫列,所以我创建了一个tweets_df
数据帧和Concat的在鸣叫所有使用df tweets_df
,添加UID列知道哪个uid与鸣叫属于,然后将uid的信息合并到tweets_df
以进一步处理(如果需要)。如果您需要进一步修改,请评论。很难获取您的示例数据并转换为json。所以我就这样猜测,希望它仍然给你一些想法。
import pandas as pd
df = .... #your df
tweets_df = pd.DataFrame() #create blank df to contain tweets
# explode tweets to df
## loop each uid
for uid in df['uid']:
temp = df.loc[df['uid']==uid, :] # select df by uid
temp = temp['tweets'].iloc[0] # select tweets column -> df
temp['uid'] = uid # add uid column to know tweets belong to which uid
tweets_df = pd.concat([results, temp], ignore_index=True) # concat to container df
# get a uid info df from starting df
uid_info_column = df.columns
uid_info_column.remove('tweets')
uid_info_df = df.loc[:, uid_info_column]
# merge info on uid with tweets_df
final = pd.merge(left=tweets_df, right=uid_info_df, on='uid', how='outer')
你能不能做这样的事'df_tweets = { 'created_at':一, 'ID':B, 'retweet_count' C:“文本:d1'然后你的主'df'做'DF = { ...'推文':df2'...}'?我误解了你所要求的无视这一点。 – quantik
你可以发布样本数据吗? –
@AndrewL,我添加了示例数据。 – Rakib