Python DataFrame:将所选值替换或组合到主DataFram中

2024-06-24 13:03:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个熊猫数据帧如下。它包含字符串和np.nan公司价值观。 数据框=

   A    B    C    D    E    F
0  aaa  abx  fwe  dcs  NaN  gsx
1  bbb  daf  dxs  fsx  NaN  ewe
2  ccc  NaN  NaN  NaN  NaN  dfw
3  ddd  NaN  NaN  asc  NaN  NaN
4  eee  NaN  NaN  cse  NaN  NaN
5  fff  NaN  NaN  wer  xer  NaN

数据框结果=

   A    C    E    F
2  sfa  NaN  NaN  wes  
4  web  NaN  NaN  NaN  
5  NaN  wwc  wew  NaN  

我想要的是将整个df_result DataFrame复制到带有相应列和索引的df DataFrame。所以我的输出是=

   A    B    C    D    E    F
0  aaa  abx  fwe  dcs  NaN  gsx
1  bbb  dxs  fsx  fsx  NaN  ewe
2  sfa  NaN  NaN  NaN  NaN  wes
3  wen  NaN  NaN  asc  NaN  NaN
4  web  NaN  NaN  cse  NaN  NaN
5  NaN  NaN  wwc  wer  wew  NaN

所以基本上我想把df,u结果的精确值复制到df,即使它们是np.nan公司值,如A:5(从fff更改为NaN)。另外,我需要保持列的顺序不变。请告诉我有效的方法。谢谢您!你知道吗


Tags: 数据dfnp公司nanbbbaaadcs
2条回答
df.update(dfr.fillna('NaN'))
df.replace('NaN',np.nan)
Out[501]: 
     A    B    C    D    E    F
0  aaa  abx  fwe  dcs  NaN  gsx
1  bbb  daf  dxs  fsx  NaN  ewe
2  sfa  NaN  NaN  NaN  NaN  wes
3  ddd  NaN  NaN  asc  NaN  NaN
4  web  NaN  NaN  cse  NaN  NaN
5  NaN  NaN  wwc  wer  wew  NaN

假设列和索引设置正确,您可以说。你知道吗

df.loc[df_result.index,df_result.columns] = df_result 

it工作示例:

import pandas as pd
import numpy as np
df=pd.DataFrame(data=[ [1 for y in range(5)] for i in range(5)] , columns=list(range(5)))
df.loc[0::2,2]=np.nan
print(df)
df2 = pd.DataFrame(data=[ [2 for y in range(3)] for i in range(2)] , columns=list(range(2,5)),index=range(1,3))
df2.loc[:,3] = np.nan
print(df2)
df.loc[df2.index,df2.columns] = df2
print(df)

相关问题 更多 >