我想知道如何在“ Data”列中的行之间进行插值,并在其中循环并创建带有“ 0.3”,“ 0.5”和“ 0.6”的新行以填补空白?
df = pd.DataFrame([0.1,0.2,0.4,0.7],columns=['Data'])
df
我该如何使用对原始数据帧的代码来生成下面的图像?
非常感谢。
答案 0 :(得分:2)
我认为应该有2种解决方案,并在示例数据中添加更多列:
df = pd.DataFrame({'Data': [0.1,0.2,0.4,0.7],
'A':list('abcd'),
'B':[4,5,6,9]})
print (df)
Data A B
0 0.1 a 4
1 0.2 b 5
2 0.4 c 6
3 0.7 d 9
通过Data
列创建索引并使用DataFrame.reindex
:
arr = np.arange(df.Data.min(),df.Data.max() + 0.1,0.1)
df1 = df.set_index('Data').reindex(arr).reset_index()
print (df1)
Data A B
0 0.1 a 4.0
1 0.2 b 5.0
2 0.3 NaN NaN
3 0.4 c 6.0
4 0.5 NaN NaN
5 0.6 NaN NaN
6 0.7 NaN NaN
或使用左联接创建助手DataFrame
和DataFrame.merge
:
df1 = pd.DataFrame({'Data':arr}).merge(df, how='left')
print (df1)
Data A B
0 0.1 a 4.0
1 0.2 b 5.0
2 0.3 NaN NaN
3 0.4 c 6.0
4 0.5 NaN NaN
5 0.6 NaN NaN
6 0.7 NaN NaN