使用基于其他行的线性回归值在 pandas 中添加行
add rows in pandas with values from a linear regression based on other rows
我有一个包含两列 Date_of_journey
和 Price
的数据框。 Date_of_journey
列采用 1 到 119 之间的值,但它只有 37 行。所以很多日期都不见了。
有没有一种简单的方法可以添加价格介于上一行和下一行之间的日期?
这是一个数据图,可以让您了解一下。我想添加一行 Date_of_journey=4
和 5
,价格符合灰色曲线。
您可以使用 RangeIndex()
将 pd.DataFrame
重新采样到新范围,并使用 pd.interpolate(method='linear')
在已知值之间进行插值。有了更多数据,您将得到与您的相似的图。
import pandas as pd
import io
data = """Date_of_Journey Price
1 24089.333333
3 14873.397727
6 14035.232877
9 13178.641509
15 5785.500000"""
df = pd.read_csv(io.StringIO(data), delimiter='\t', index_col='Date_of_Journey')
df = df.reindex(pd.RangeIndex(start=1, stop=119,step=1))
df.interpolate(method='linear', inplace=True)
df.plot(y='Price')
输出:
我有一个包含两列 Date_of_journey
和 Price
的数据框。 Date_of_journey
列采用 1 到 119 之间的值,但它只有 37 行。所以很多日期都不见了。
有没有一种简单的方法可以添加价格介于上一行和下一行之间的日期?
这是一个数据图,可以让您了解一下。我想添加一行 Date_of_journey=4
和 5
,价格符合灰色曲线。
您可以使用 RangeIndex()
将 pd.DataFrame
重新采样到新范围,并使用 pd.interpolate(method='linear')
在已知值之间进行插值。有了更多数据,您将得到与您的相似的图。
import pandas as pd
import io
data = """Date_of_Journey Price
1 24089.333333
3 14873.397727
6 14035.232877
9 13178.641509
15 5785.500000"""
df = pd.read_csv(io.StringIO(data), delimiter='\t', index_col='Date_of_Journey')
df = df.reindex(pd.RangeIndex(start=1, stop=119,step=1))
df.interpolate(method='linear', inplace=True)
df.plot(y='Price')
输出: