不正确地将值分配给数据框工作(将int64值更改为NaN)

时间:2020-06-12 15:32:01

标签: python pandas dataframe

我正在尝试将时间序列数据的值分配给另一个填充缺失日期的数据。 但是当我尝试它时,它不正确地分配了值。

下面是我的代码

sales_data.head()

date    CustomerID  sales
0   2017-11-06  8069    10
1   2017-11-09  20101   58
2   2017-11-13  8069    10
3   2017-11-16  8083    5
4   2017-11-17  8117    2
sales_data["sales"].dtype

结果:dtype('int64')

ts_sales_data["sales"] = 0
ts_sales_data["sales"] = ts_sales_data["sales"].astype(np.int64)
ts_sales_data.head()

    date    sales
0   2017-11-06  0
1   2017-11-07  0
2   2017-11-08  0
3   2017-11-09  0
4   2017-11-10  0
ts_sales_data["sales"].dtype

结果:dtype('int64')

for x in sales_data["date"] :
   ts_sales_data.loc[ts_sales_data["date"] == x, "sales"] = sales_data.loc[sales_data["date"] == x, "sales"]

ts_sales_data.head()

date    sales
0   2017-11-06  10.0
1   2017-11-07  0.0
2   2017-11-08  0.0
3   2017-11-09  NaN
4   2017-11-10  0.0

分配值如上所述无法正常工作。 我尝试使用向下转换和astype更改“ ts_sales_data”的销售列的类型。 我也尝试在分配时在“ sales_data”中投射值, 但它仍然给我相同的结果 如何正确分配值?

0 个答案:

没有答案