Объедините все столбцы из нескольких фреймов данных pandas в один фрейм данных с именами данных и столбцов - PullRequest
1 голос
/ 21 июня 2019

У меня есть N Dataframes с разным количеством столбцов, я хочу получить один dataframe с 2 столбцами x и Y, где x - данные из столбцов входного информационного кадра, а Y - само имя столбца.У меня есть много таких фреймов данных, которые мне нужно объединить (N порядка 10 ^ 2), поэтому эффективность является приоритетом.Также приветствуется простой способ, а не путь панд.

Например,

df1:
   one two
0    1   a
1    2   b
2    3   c
3    4   d
4    5   e

df2: 
  three four
0   NaN     
1  None    f
2          g
3     6    7

Final Output Dataframe:
    x      y
0   1    one
1   2    one
2   3    one
3   4    one
4   5    one
5   a    two
6   b    two
7   c    two
8   d    two
9   e    two
10  6  three
11  f   four
12  g   four
13  7   four

Примечание: я игнорирую пустые строки, NaN и Nones в конечном кадре данных.

1 Ответ

0 голосов
/ 21 июня 2019

IIUC вы можете использовать melt() перед объединением:

final=(pd.concat([df1.melt(),df2.dropna().melt()]).
         rename(columns={'variable':'y','value':'x'}). reindex(['x','y'],axis=1))
print(final)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...