熊猫read_csv值错误

时间:2018-07-27 07:27:05

标签: python-3.x pandas

我读了一个带有重复索引的csv,像这样的熊猫:

data = pd.read_csv('/home/dev/PycharmProjects/test/download.csv', 
parse_dates=True, index_col=['DATE'], low_memory=False)
print(data.info(memory_usage = 'deep'))
data_extracted = data.groupby(['DATE','ARTICLENO'])['QUANTITY'].sum().unstack()
data_extracted = data_extracted.fillna(value=np.nan)

我的csv在特定日期为商品编号提供以下条目:

Quantity, Date
378 2015-01-05 00:00:00.0
450 2015-01-05 00:00:00.0
378 2015-01-05 00:00:00.0
270 2015-01-05 00:00:00.0
432 2015-01-05 00:00:00.0
828 2015-01-05 00:00:00.0

数据帧缩短到特定时间范围:

data_extracted = data_extracted.loc['2015-01-01' : '2015-12-31']

然后打印。对于特定的文章编号,我得到以下列:

2015-01-05 00:00:00.0    378450378270432828

当我使用csv的较小部分(例如nrows = 1000000)时,我没有此效果。 谁能解释我为什么会这样?在进行groupby时,我已经检查了sum(),但是我永远都无法达到这么大的值,并且数据框中的大值对于csv中找到的所有日期都是连续的。

1 个答案:

答案 0 :(得分:0)

列中有字符串,因此请尝试转换为float

data['QUANTITY'] = data['QUANTITY'].astype(float)

如果要转换多列:

cols = ['QUANTITY','Another col']
data[cols] = data[cols].astype(float)

如果要转换所有列:

data = data.astype(float)

如果上述解决方案失败,请使用to_numeric

data['QUANTITY'] = pd.to_numeric(data['QUANTITY'], errors='coerce')