Разделить pandas фрейм данных по столбцу, затем добавить - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть фрейм данных:

enter image description here

Я хочу сохранить первые три столбца, а затем сложить их поверх следующих 3 столбцов, например что у меня есть датафрейм с ["userID", "tweetID", "time"] в конце.

Ответы [ 3 ]

1 голос
/ 26 апреля 2020
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])

Это работает.

0 голосов
/ 26 апреля 2020
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 их вместе в стек.

0 голосов
/ 26 апреля 2020

IIU C кажется, что вам нужно 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...