Python :用列的唯一现值填充 Dataframe 中的列
Python : Fill columns in a Dataframe with the unique present value of the column
假设我有这个数据框,其中有两列未满。
data1 = [12,34,465,678,896]
data2 = ['thx','','','','']
data3 = ['','',34,'','']
df = pd.DataFrame(list(zip(data1,data2,data3)),columns = ['Data1','Data2','Data3'])
print(df)
Data1 Data2 Data3
0 12 thx
1 34
2 465 34
3 678
4 896
我想用列中存在的唯一值填充这些列。所以我想得到类似的东西:
Data1 Data2 Data3
0 12 thx 34
1 34 thx 34
2 465 thx 34
3 678 thx 34
4 896 thx 34
我应该使用什么功能来做到这一点?
想到两个想法:
# Pre-work: you want your null values to be actual NaN
import numpy as np
df = df.replace('', np.nan)
# Method 1: FFill / BFill methods
ans = df.fillna('ffill').fillna('bfill')
# Method 2: Use a fillna dict
ans = df.fillna({col: df[col].unique()[0] for col in df.columns})
让我知道是否可行(我更喜欢第一个)
假设我有这个数据框,其中有两列未满。
data1 = [12,34,465,678,896]
data2 = ['thx','','','','']
data3 = ['','',34,'','']
df = pd.DataFrame(list(zip(data1,data2,data3)),columns = ['Data1','Data2','Data3'])
print(df)
Data1 Data2 Data3
0 12 thx
1 34
2 465 34
3 678
4 896
我想用列中存在的唯一值填充这些列。所以我想得到类似的东西:
Data1 Data2 Data3
0 12 thx 34
1 34 thx 34
2 465 thx 34
3 678 thx 34
4 896 thx 34
我应该使用什么功能来做到这一点?
想到两个想法:
# Pre-work: you want your null values to be actual NaN
import numpy as np
df = df.replace('', np.nan)
# Method 1: FFill / BFill methods
ans = df.fillna('ffill').fillna('bfill')
# Method 2: Use a fillna dict
ans = df.fillna({col: df[col].unique()[0] for col in df.columns})
让我知道是否可行(我更喜欢第一个)