简介
有时我们在用pandas读取一个不知道什么格式的csv文件时,会出现如下情况,
>>> import pandas as pd
>>> df = pd.read_csv(r'C:\Users\demo\Desktop\12.csv',encoding='gbk',sep='\t')
>>> print(df)
这时我们发现每个元素均会被两个双引号包裹着,并且所有列在一起被一个一双引号包围着。当我需要提取某几列值是非常不方便,因为在pandas读取后只有一列,实则csv数据不只一列。
思路
1、使用python标准的csv进行读取,生成一个<class ‘_csv.reader’>类对象;
2、实则对reader遍历将会是一行一个列表,这时我们利用pandas重新构造DataFrame,将会将还原为我们需要的数据格式。
具体如下:
import csv
import numpy
import pandas as pd
f = open(r'C:\Users\demo\Desktop\12.csv','r')
reader = csv.reader(f)
print(type(reader))
#for row in reader:
#print(row[0])
t1 = pd.DataFrame(reader,dtype=str)
#print(t1)
print(t1.info())
#print(t1.head(5))
#运行结果
这时将会重新构造一个DataFrame,便于我们进行数据分析。