我有一個缺失值的數據框,需要水平插入列。對於插值,某些列的名稱(名稱是數字)將用作插值的索引值。我已經把下面的例子中,以更好地溝通的問題:Python中的線性插值,但使用列標題作爲索引值
初始數據框:
import pandas as pd
testdata1 = [('Prod', ['P1', 'P2']),
('A', ['1', '1']),
('1', ['10', '40']),
('2', ['', '']),
('3', ['30', '80']),
('B', ['1', '2']),
]
df = pd.DataFrame.from_items(testdata1)
df
目標數據框:
targetdf = [('Prod', ['P1', 'P2']),
('A', ['1', '1']),
('1', ['10', '40']),
('2', ['20', '60']),
('3', ['30', '80']),
('B', ['1', '2']),
]
df2 = pd.DataFrame.from_items(targetdf)
df2
在我的例子上面,要完成的列orm插值(水平)在列'1','2'和'3'上。這些列標題(1,2和3)是插值計算中要使用的索引值。
我知道如何在Python中使用.interpolate(),但只有當索引值是一個特定列中的所有單元格時。任何幫助是極大的讚賞。
謝謝。這工作很棒! – Jdoe
我有一個問題。請問您在哪裏指定了用於插值的索引值?我知道你使用了索引方法,但我無法理解你指定值用於索引的位置。 – Jdoe
它使用列名稱,'1,2,3'。 (f,axis = 1)'和'def f(x):print(x)print(interpolate(method ='index')' – jezrael