我有兩個dataframes這樣的:熊貓2個dataframes,某種合併的
df['one'] = [1,2,3,4,5]
df['two'] = [nan, 15, nan, 22, nan]
我需要某種形式的加入或合併,這將給我的數據幀是這樣的:
df['result'] = [1,15,3,22,5]
任何想法?
我有兩個dataframes這樣的:熊貓2個dataframes,某種合併的
df['one'] = [1,2,3,4,5]
df['two'] = [nan, 15, nan, 22, nan]
我需要某種形式的加入或合併,這將給我的數據幀是這樣的:
df['result'] = [1,15,3,22,5]
任何想法?
您可以使用np.where
來做到這一點。因此,如果df.two
是NaN
,則使用df.one
的值,否則使用df.two
。
import pandas as pd
import numpy as np
# your data
# ========================================
df = pd.DataFrame(dict(one=[1,2,3,4,5], two=[np.nan, 15, np.nan, 22, np.nan]))
print(df)
one two
0 1 NaN
1 2 15
2 3 NaN
3 4 22
4 5 NaN
# processing
# ========================================
df['result'] = np.where(df.two.isnull(), df.one, df.two)
one two result
0 1 NaN 1
1 2 15 15
2 3 NaN 3
3 4 22 22
4 5 NaN 5
謝謝我的朋友,這正是我需要!! – markan3
@ markan3你是最受歡迎的。很高興它有幫助。 :-) –
可以使用熊貓方法combine_first()
填補從數據幀或系列與另一個值的缺失值;在這種情況下,要填補遺漏值在df['two']
相應的值在df['one']
:
In [342]: df['result']= df['two'].combine_first(df['one'])
In [343]: df
Out[343]:
one two result
0 1 NaN 1
1 2 15 15
2 3 NaN 3
3 4 22 22
4 5 NaN 5
另一種選擇:'df.two.fillna(df.one)' –