मैं कुछ कॉलम के आधार पर दो डेटाफ्रेम मर्ज करने की कोशिश कर रहा हूं लेकिन खाली डेटाफ्रेम प्राप्त कर रहा हूं। क्या आप कृपया मुझे उचित समाधान प्राप्त करने में मदद कर सकते हैं?

समझाना:

Df1:

   kol_id thrc_nm   jnj_id
0  101152     VIR  7124166

Df1.info ()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1 entries, 0 to 0
Data columns (total 4 columns):
kol_id     1 non-null object
thrc_nm    1 non-null object
jnj_id     1 non-null object
           1 non-null object

Df2:

  kol_id     jnj_id              kol_full_nm foc_area_id thrc_cd thrc_nm dis_area dis_area_nm expert_score pub_scor rx_scor refrl_scor clincl_rsrchr_scor is_kol
0  101152  7124166.0     Constance Ann Benson           1     VIR     VIR      HIV         HIV        45.17     68.5     0.0       1.69               88.0      Y
1  251489  7822721.0            Mariam S Aziz           1     VIR     VIR      HIV         HIV        44.33     39.5    33.0      34.26               76.0      Y
2  100856  7356682.0     William Rodney Short           1     VIR     VIR      HIV         HIV        49.49     44.0    57.5      50.39               48.0      Y
3  251460  7933108.0             Laura A Guay           1     VIR     VIR      HIV         HIV         34.8     63.0     0.0        0.0               48.0      N
4  100653  7986599.0  Roberto Agustin Andrade           1     VIR     VIR      HIV         HIV        35.07     32.5    42.5       3.21               45.0      N

Df2.info ()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 501 entries, 0 to 500
Data columns (total 14 columns):
kol_id                501 non-null object
jnj_id                501 non-null object
kol_full_nm           501 non-null object
foc_area_id           501 non-null object
thrc_cd               501 non-null object
thrc_nm               501 non-null object
dis_area              501 non-null object
dis_area_nm           501 non-null object
expert_score          501 non-null object
pub_scor              501 non-null object
rx_scor               501 non-null object
refrl_scor            501 non-null object
clincl_rsrchr_scor    501 non-null object
is_kol                501 non-null object
dtypes: object(14)

मैं इन दो डेटाफ्रेम को मर्ज करने की कोशिश कर रहा हूं लेकिन खाली डेटाफ्रेम प्राप्त कर रहा हूं। मैं कोड के नीचे चल रहा हूँ:

df_3=pd.merge(df2,df1,on=['kol_id', 'jnj_id', 'thrc_nm'],how='inner')

आउटपुट में मुझे मिल रहा है:

Empty DataFrame
Columns: [kol_id, jnj_id, kol_full_nm, thrc_cd]
Index: []

वांछनीय आउटपुट:

df_result:

   kol_id   jnj_id    kol_full_nm          thrc_cd  
0  101152   7124166  Constance Ann Benson   VIR
1
shivam patel 11 सितंबर 2020, 08:11

1 उत्तर

सबसे बढ़िया उत्तर

समस्या यह है कि df2 में कॉलम jnj_id objects (strings) से भरा है, लेकिन पीछे 0 हैं, इसलिए मेल नहीं खाते। मुझे लगता है कारण df1['jnj_id'] integers द्वारा भरा गया था और df2['jnj_id'] ny floats भरा गया था, स्ट्रिंग में सह कनवर्ट यहां मदद नहीं कर सकता है।

एक विचार उन्हें Series.str.replace:

df2['jnj_id'] = df2['jnj_id'].str.replace('\.0$', '')

या दोनों स्तंभों को पूर्णांक या फ़्लोट में बदलें:

df1['jnj_id'] = df1['jnj_id'].astype(int)
df2['jnj_id'] = df2['jnj_id'].astype(int)

df1['jnj_id'] = df1['jnj_id'].astype(float)
df2['jnj_id'] = df2['jnj_id'].astype(float)
0
jezrael 11 सितंबर 2020, 08:18