我有csv文件,我必须使用panda
制作数据帧。
通常文件的格式如下:
Days Page Impressions Visits Bounces
2012-12-15 692041 87973 31500
2012-12-16 602356 78663 29298
2012-12-17 730902 99356 37436
2012-12-18 730071 97844 37199
2012-12-19 774964 110446 43858
2012-12-20 419256 44592 13961
2012-12-21 320966 33692 10076
2012-12-22 200992 18840 5170
我面临的问题是有时CSV文件是这样的:
SomeName ABCD
Account: AccountHolder Name
Report Author: Analysis
Description: Some variable length description
Pivot
Pivot
Days Page Impressions Visits Bounces
2012-12-15 367143 69147 30222
2012-12-16 334675 63702 28040
2012-12-17 409260 77171 33642
2012-12-18 427765 78221 33575
2012-12-19 434781 79850 34300
2012-12-20 463448 81361 34501
2012-12-21 447964 81897 35242
2012-12-22 368477 70352 31014
2012-12-23 321891 61973 27521
Time of Calculation: 2013-03-15 02:14:58
如何只获取天数,页面展示次数,访问次数,退回次数
列中关联的数据我知道我可以list(my_dataframe.columns.values)
获取标题名称但它不适用于CSV文件类型-2。
他们的任何现有的Pythonic方式是用大熊猫做的吗? 感谢
答案 0 :(得分:4)
两遍读取文件。首先枚举文件中的行以获取标题所在的行。将该行号传递给csv解析器arrows。
with open('file.csv', 'rb') as infile:
for lineno, line in enumerate(infile):
if line[:4] = 'Days':
break
df = pd.read_csv('file.csv', skiprows=lineno)
答案 1 :(得分:0)
使用pandas.io.parsers.read_csv。它有一个选项“skiprows”。如果您的文件在标题中始终具有相同的6行,则可以使用skiprows = 6
skiprows:list-like或integer 要在文件开头跳过(0索引)或要跳过的行数(int)的行号 即:
import pandas as pd
df = pd.read_cs("path/to/file.csv", sep=";", skiprows=6)
答案 2 :(得分:0)
您还可以在熊猫read_csv中使用该变量。
对于您而言,它看起来像:
import pandas as pd
df = pd.read_csv(file,header = 6 )
所以您的脚本将使用第六行作为标题,然后开始读取数据...