我有以下pd數據幀。Pandas在列間插入日期
import pandas as pd
df = pd.DataFrame([pd.datetime(2016,1,1), pd.datetime(2016,2,1)], columns = ['d1'])
df['d2'] = [pd.datetime(2016,1,5), pd.datetime(2016,2,10)]
df['d3'] = [pd.datetime(2016,1,10), pd.datetime(2016,2,20)]
df['v1'], df['v2'], df['v3'] = [1,10], [5, 100], [5, 100]
df['x1'] = [pd.datetime(2016,1,2), pd.datetime(2016,2,13)]
d1 d2 d3 v1 v2 v3 x1
0 2016-01-01 2016-01-05 2016-01-10 1 5 5 2016-01-02
1 2016-02-01 2016-02-10 2016-02-20 10 100 100 2016-02-13
我想通過內插
x: x1
independent = [d1, d2, d3]
dependent = [v1, v2, v3]
在上面的例子來計算列X2,X2應該是2行0,100爲第1行
我能想到使用df.iterrows(),slice [d1-d3]和[v1-v3],然後使用np.interp,但即使這樣會變得有點複雜,因爲我必須將日期轉換爲float。 (np.interp只接受浮動列表)。
熊貓內應該有一個更清潔,矢量化的方法嗎?
感謝。就像這個想法一樣,但是插值需要按行進行。您的示例df2將d行和v行結合在一起。 –
在您提供的示例數據中,每行中的日期形成了不跨行的時段。您的數據中是否會出現這種重疊情況? –
是的,對不起,我的例子很差。有重疊。更好的例子是在第1行中將所有'Feb'替換爲'Jan'。 –