按列拆分熊猫数据框,然后追加

我有数据框:

http://img2.mukewang.com/6357878a00011ebd06870364.jpg

我想保留前三列,然后将它们堆叠在接下来的 3 列之上,这样我["userID", "tweetID", "time"]最后就有了一个数据框。



海绵宝宝撒
浏览 109回答 3
3回答

红糖糍粑

df_top = tree_df[['userID_start', 'tweetID_start', 'time_start']]df_top.columns = ['userID', 'tweetID', 'time']df_bottom = tree_df[['userID_end', 'tweetID_end', 'time_end']]df_bottom.columns = ['userID', 'tweetID', 'time']final_df = pd.concat([df_top, df_bottom])这行得通。

有只小跳蛙

看来您需要pd.wide_to_long:df.columns=df.columns.str.split('_').map(lambda x : '_'.join(x[::-1]))s=pd.wide_to_long(df.reset_index(),['end','start'],i='index',j='drop',sep='_',suffix='\w+').stack().unstack(-2)

翻翻过去那场雪

start_cols = [c for c in df.columns if c.endswith('_start')]end_cols = [c for c in df.columns if c.endswith('_end')]def rename(x): return x.split('_')[0]output_df = pd.concat([    df[start_cols].rename(columns=rename),     df[end_cols].rename(columns=rename)])您可以将两个数据帧中的开始列和结束列子集并将它们 pd.concat 组合在一起以堆叠。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python