在 python 中导入 csv 文件时解析错误
Wrong parsing when importing csv file in python
我正在尝试导入 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
Process finished with exit code 0
我的问题是:
- 为什么我的 "names" (headers) 没有从第一列开始?
- 如何将第 2 列设为 date-time 和索引?
- 如何扩大结果以便在一行中看到所有数据(我使用的是 pycharm)?因为我需要将 date-time 作为索引,所以我需要删除第 0 列,但是当使用
df.drop(df.index[0])
时没有任何反应。
欢迎任何帮助!
有 10 列,你有 6 列的名称,所以代码应该是这样的:
df = pd.read_csv('lol.csv',usecols = list(range(0,6)),names=['empty', 'date_time', 'last', 'last_size', 'bid', 'ask'])
我使用了前 6 列,请理解以下示例并命名您想要的列。
usecols is where you put a list of your column numbers which you want it to be named.
for eg :如果你想将 col 1,3,4 命名为 name,gender,address 那么代码看起来像
pd.read_csv('lol.csv',usecols = [1,3,4],names=['name','gender','address'])
for the third question
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 参数来告知将哪一列用作索引。
to drop a column
after you import an csv in variable (for eg: df ) using pandas, use the following code:
df.drop('empty', axis=1, inplace=True)
我正在尝试导入 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
Process finished with exit code 0
我的问题是:
- 为什么我的 "names" (headers) 没有从第一列开始?
- 如何将第 2 列设为 date-time 和索引?
- 如何扩大结果以便在一行中看到所有数据(我使用的是 pycharm)?因为我需要将 date-time 作为索引,所以我需要删除第 0 列,但是当使用
df.drop(df.index[0])
时没有任何反应。
欢迎任何帮助!
有 10 列,你有 6 列的名称,所以代码应该是这样的:
df = pd.read_csv('lol.csv',usecols = list(range(0,6)),names=['empty', 'date_time', 'last', 'last_size', 'bid', 'ask'])
我使用了前 6 列,请理解以下示例并命名您想要的列。
usecols is where you put a list of your column numbers which you want it to be named.
for eg :如果你想将 col 1,3,4 命名为 name,gender,address 那么代码看起来像
pd.read_csv('lol.csv',usecols = [1,3,4],names=['name','gender','address'])
for the third question
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 参数来告知将哪一列用作索引。
to drop a column after you import an csv in variable (for eg: df ) using pandas, use the following code:
df.drop('empty', axis=1, inplace=True)