Použití stav v datovém nahradit hodnoty v jiném datovém s nan

0

Otázka

Mám datovém který obsahuje hodnoty koncentrací pro sadu vzorků takto:

Vzorek Ethanol Aceton Formaldehyd Metan
A 20 20 20 20
A 30 23 20 nan
A 20 23 nan nan
A nan 20 nan nan
B 21 46 87 54
B 23 74 nan 54
B 23 67 nan 53
B 23 nan nan 33
C 23 nan nan 66
C 22 nan nan 88
C 22 nan nan 90
C 22 nan nan 88

Mám druhý datovém že obsahuje podíl koncentrace hodnoty, které nejsou chybí v prvním datovém:

Vzorek Ethanol Aceton Formaldehyd Metan
A 0.75 1 0.5 0.25
B 1 0.75 0.25 1
C 1 0 0 1

Chtěl bych nahradit hodnotu v prvním datovém s nan když stav v druhém datovém je 0,5 nebo méně. Proto výsledná datovém bude vypadat jako ten níže. Jakákoliv pomoc by bylo skvělé!

Vzorek Ethanol Aceton Formaldehyd Metan
A 20 20 nan nan
A 30 23 nan nan
A 20 23 nan nan
A nan 20 nan nan
B 21 46 nan 54
B 23 74 nan 54
B 23 67 nan 53
B 23 nan nan 33
C 23 nan nan 66
C 22 nan nan 88
C 22 nan nan 90
C 22 nan nan 88
dataframe nan pandas replace
2021-11-23 12:36:56
1

Nejlepší odpověď

3

Je to to, co vaše hledáte:

>>> df2.set_index('Sample').mask(lambda x: x <= 0.5) \
       .mul(df1.set_index('Sample')).reset_index()

   Sample  Ethanol  Acetone  Formaldehyde  Methane
0       A     15.0    20.00           NaN      NaN
1       A     22.5    23.00           NaN      NaN
2       A     15.0    23.00           NaN      NaN
3       A      NaN    20.00           NaN      NaN
4       B     21.0    34.50           NaN     54.0
5       B     23.0    55.50           NaN     54.0
6       B     23.0    50.25           NaN     53.0
7       B     23.0      NaN           NaN     33.0
8       C     23.0      NaN           NaN     66.0
9       C     22.0      NaN           NaN     88.0
10      C     22.0      NaN           NaN     90.0
11      C     22.0      NaN           NaN     88.0
2021-11-23 13:36:03

dobrá odpověď, super.
jezrael

Díky vám! Tohle funguje perfektně!
Simon C

Rádi pomůžeme! Zvažte prosím , přijměte mou odpověď jak to vyřešit váš problém. Díky.
Corralien

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................