Объединение данных различной длины в Python / pandas - PullRequest
0 голосов
/ 03 октября 2018

У меня есть 2 кадра данных:

df1
aa  gg   pm
1   3.3  0.5
1   0.0  4.7
1   9.3  0.2
2   0.3  0.6
2   14.0 91.0
3   13.0 31.0
4   13.1 64.0
5   1.3  0.5
6   3.3  0.5
7   11.1 3.0
7   11.3 24.0
8   3.2  0.0
8   5.3  0.3
8   3.3  0.3

и df2:

aa  gg   st
1   3.3  in
2   0.3  in
5   1.3  in
7   11.1 in
8   5.3  in

Я хотел бы объединить эти два кадра данных в столбцах aa и gg, чтобы получить такие результаты, как:

aa  gg   pm   st
1   3.3  0.5  in
1   0.0  4.7    
1   9.3  0.2    
2   0.3  0.6  in
2   14.0 91.0   
3   13.0 31.0   
4   13.1 64.0   
5   1.3  0.5  in
6   3.3  0.5    
7   11.1 3.0  in
7   11.3 24.0   
8   3.2  0.0    
8   5.3  0.3  in
8   3.3  0.3    

Я хочу отобразить детали столбца на основе столбцов и gg.пожалуйста, дайте мне знать, как это сделать.

1 Ответ

0 голосов
/ 04 октября 2018

Вы можете создать несколько столбцов с плавающей запятой по 1000 или 10000 и преобразовать их в целые числа, а затем использовать эти новые столбцы для объединения:

df1['gg_int'] = df1['gg'].mul(1000).astype(int)
df2['gg_int'] = df2['gg'].mul(1000).astype(int)

df = df1.merge(df2.drop('gg', axis=1), on=['aa','gg_int'], how='left')
df = df.drop('gg_int', axis=1)
print (df)
    aa    gg    pm   st
0    1   3.3   0.5   in
1    1   0.0   4.7  NaN
2    1   9.3   0.2  NaN
3    2   0.3   0.6   in
4    2  14.0  91.0  NaN
5    3  13.0  31.0  NaN
6    4  13.1  64.0  NaN
7    5   1.3   0.5   in
8    6   3.3   0.5  NaN
9    7  11.1   3.0   in
10   7  11.3  24.0  NaN
11   8   3.2   0.0  NaN
12   8   5.3   0.3   in
13   8   3.3   0.3  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...