在python中导入csv文件时解析错误

时间:2017-12-13 14:25:11

标签: python pandas csv pycharm pandas-datareader

我正在尝试导入csv格式文件。这是交易数据信息。该文件如下:

0,2017-09-18 02:00:06,12568.00,1,201,12567.00,12568.00,5462,0,0,C,
0,2017-09-18 02:00:06,12568.50,2,203,12567.00,12568.00,5463,0,0,C,
0,2017-09-18 02:00:06,12569.00,1,204,12567.00,12569.00,5468,0,0,C,
0,2017-09-18 02:00:06,12569.00,1,205,12567.00,12569.00,5470,0,0,C,
0,2017-09-18 02:00:06,12569.50,3,208,12567.00,12569.00,5471,0,0,C,

我正在使用这个python代码:

import pandas as pd
df = pd.read_csv("XG#/20170918.txt", names=['empty', 'date time', 'last', 'last size', 'bid', 'ask'])
print(df.head(1))

我的输出是:

                empty  date time  last  \ 0 2017-09-18 02:00:06 12567.0 200.0 200.0 12567.0  12567.0     5430.0   0.0   

                                               last size bid  ask   0 2017-09-18 02:00:06 12567.0 200.0 200.0 12567.0        0.0   C  NaN 
     

处理完成,退出代码为0

我的问题是:

  1. 为什么我的“名字”(标题)没有在第一列开始?
  2. 如何将第二列作为日期时间和索引?
  3. 如何扩大结果,以便在一行中看到所有数据(我使用的是pycharm)?因为我需要将日期时间作为索引,所以我需要删除第0列,但在使用df.drop(df.index[0])时没有任何反应。
  4. 欢迎任何帮助!

1 个答案:

答案 0 :(得分:3)

有10列,你有6列的名字,所以代码应该是这样的:

df = pd.read_csv('lol.csv',usecols = list(range(0,6)),names=['empty', 'date_time', 'last', 'last_size', 'bid', 'ask'])

我使用了前6列,请您了解下面的示例并命名您想要的列。

  

usecols 是您希望命名为的列号列表的地方。

例如:如果您希望将col 1,3,4命名为name,gender,address,那么代码将如下所示

pd.read_csv('lol.csv',usecols = [1,3,4],names=['name','gender','address'])
  

第三个问题

df = pd.read_csv('lol.csv',usecols = list(range(0,6)),names=['empty','date_time', 'last', 'last_size', 'bid', 'ask'],index_col = 'date_time' ) 

您可以使用index_col参数来指示要用作索引的列。

  

删除列   使用pandas在变量(例如:df)中导入csv后,请使用以下代码:

df.drop('empty', axis=1, inplace=True)