我从这里导入CSV文件:https://raw.githubusercontent.com/kwartler/Harvard_DataMining_Business_Student/master/BookDataSets/LaptopSales.csv
此代码适用于:
from dfply import *
import pandas as pd
df = pd.read_csv("LaptopSales.csv")
(df >> select(X["Date"]) >> mutate(AdjDate = (X.Date.str.split(" "))) >> head(3))
并产生以下结果:
Date AdjDate
0 01-01-2008 00:01 [01-01-2008, 00:01]
1 01-01-2008 00:02 [01-01-2008, 00:02]
2 01-01-2008 00:04 [01-01-2008, 00:04]
但是当我试图提取列表中的第一个元素时:
from dfply import *
import pandas as pd
df = pd.read_csv("LaptopSales.csv")
(df >> select(X["Date"]) >> mutate(AdjDate = (X.Date.str.split(" ")[0])) >> head(3))
我得到了一堵错误墙,最终导致:
ValueError: Length of values (2) does not match length of index (279999)
2条答案
按热度按时间qybjjes11#
调整日期=(X.日期.字符串拆分(““)[0]))
实际上是逐个索引比较2个系列,并返回一个具有主系列长度的系列。
那么你就不能把它存储在一个长度为2的变量中,并且Pandas会产生错误
yx2lnoni2#
答案是CSV文件中的一行在日期列中包含一个值NaN。该值不能在““上拆分。Nan是一个浮点数:由于拆分无法创建列表,因此索引操作失败。它位于.CSV文件中的第2913行:“,51,SE14 6LA,SE8 3JD,460,15,4,2,1.5,是,80,是,536682,177068,537175,177885”
我之所以没有简单地删除这个问题,是因为这个数据集是公开的,而且似乎是哈佛大学课程的一部分:https://github.com/kwartler/Harvard_DataMining_Business_Student