Объедините два фрейма данных с одной строкой одной, а затем одной строкой другой, используя панд - PullRequest
1 голос
/ 20 сентября 2019

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

df1
col1    col2
 A        1
 B        2
 C        3


df2
col1    col2
 E        4
 F        5
 G        6

Я хочу создать один фрейм данных, комбинируя эти фреймы данных таким образом, чтобы за одной строкой df1 следовала одна строка df2.

Требуемый вывод

df
col1    col2
 A        1
 E        4
 B        2
 F        5
 C        3
 G        6

Я мог бы сделать это с помощью цикла for и добавить строки в один фрейм данных из обоих фреймов данных,

Но яищу ярлыки панд, чтобы сделать это наиболее эффективно в питоническом ключе.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Использование concat с DataFrame.stack:

df = pd.concat([df1, df2], 1, keys=(0,1)).stack(0).reset_index(drop=True)
print (df)
  col1  col2
0    A     1
1    E     4
2    B     2
3    F     5
4    C     3
5    G     6

Или:

df = pd.concat([df1, df2]).sort_index().reset_index(drop=True)
print (df)
  col1  col2
0    A     1
1    E     4
2    B     2
3    F     5
4    C     3
5    G     6
1 голос
/ 20 сентября 2019

Я считаю, что append и sort_index также будут работать.Вы можете добавить reset_index, если хотите RangeIndex

df1.append(df2).sort_index().reset_index(drop=True)

Out[536]:
  col1  col2
0  A    1
1  E    4
2  B    2
3  F    5
4  C    3
5  G    6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...