我有截至 2020 年 7 月的销售数据,并希望使用回收率来预测未来 3 个月。这是数据框:
test = pd.DataFrame({'Country':['USA','USA','USA','USA','USA'],
'Month':[6,7,8,9,10],
'Sales':[100,200,0,0,0],
'Recovery':[0,1,1.5,2.5,3]
})
Run Code Online (Sandbox Code Playgroud)
它看起来是这样的:
现在,我想在该数据框中添加一个“预测”列:
第 3 行的第一个值 300 基本上是(200 * 1.5/1)。这将是我们接下来的基础值,所以下一个值,即 500 基本上是(300 * 2.5/1.5)这样的。如何从第 3 行开始迭代每一行?我尝试使用 shift() 但无法迭代行。
我对 Python 还很陌生。我正在利用 Python 的假期套餐,该套餐按国家/地区划分公共假期。为了获得一个国家/地区的假期,您可以运行以下命令:
sorted(holidays.US(years=np.arange(2014,2030,1)).items()
这将给出日期和假期。现在,我想要针对一些国家的数据。如何循环遍历国家/地区列表,而不是每次都替换上述代码中的国家/地区名称?这里考虑的国家是:
[FRA, Norway, Finland, US, Germany, UnitedKingdom, Sweden]
我尝试了这样的 for 循环:
countrylistLoop = ['FRA', 'Norway', 'Finland', 'US', 'Germany', 'UnitedKingdom', 'Sweden']
for i in countrylistLoop:
print(sorted(holidays.i(years=np.arange(2014,2030,1)).items()),columns=['Date','Holiday'])
Run Code Online (Sandbox Code Playgroud)
这会抛出一个属性错误:
AttributeError: module 'holidays' has no attribute 'i'.
Run Code Online (Sandbox Code Playgroud)
这是有道理的,但我不知道如何继续!
理想情况下,我想循环并将结果存储在数据框中。非常感谢任何帮助!谢谢你!
我的数据集如下所示:
PNR Action Code
-----+-------------
1 | Book
1 | Exchange
1 | Cancel
2 | Book
2 | Exchange
3 | Book
4 | Book
4 | Cancel
Run Code Online (Sandbox Code Playgroud)
我试图返回PNR的所有行,其中Action代码为"取消".所以在这种情况下,PNR 1和4的所有行.
我试图使用Where子句,但这不正确,因为它只返回WHERE行动代码为"取消"的行.我的结果应该是这样的:
PNR Action Code
-----+-------------
1 | Book
1 | Exchange
1 | Cancel
4 | Book
4 | Cancel
Run Code Online (Sandbox Code Playgroud)