3 回答
TA贡献1815条经验 获得超6个赞
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])
这行得通。
TA贡献1824条经验 获得超8个赞
看来您需要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)
TA贡献2065条经验 获得超13个赞
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 组合在一起以堆叠。
添加回答
举报