我有一个CSV文件,如下所示:
1, 2, 3, 4, 5 ...
0, 1, 0, 1, 0 ...
0, 1, 0, 1, 0 ...
str1, str2, str3, str4, str5 ...
val1, val1.1, val1.2, val1.3, val1.4 ...
val2, val2.1, val2.2, val2.3, val2.4 ...
...
我想生成一个如下所示的数据帧:
^{pr2}$以下是我的尝试:
for f in files:
data = pd.read_excel(f)
df = df.append(data)
df[5:10] //only care about values in rows below [str1, str2, ..., strn].
d = df.ix[:, '2' : '5']
d.columns = ['str2', 'str3', 'str4', 'str5'] //rename columns, reduce table size.
这会产生:
str2 str3 str4 str5
val1.1 val1.2 val1.3 val1.4 ...
...
如何消除str3
和str4
以获得我最初想要的数据帧?在
在我看来,这样做可以更有效率。在
只解析(读取)您真正需要的数据-这将更快,并将显著减少内存消耗。除此之外,使用
pd.concat()
一次而不是使用df.append()
添加每个新的DF应该快得多。在代码:
输出:
^{pr2}$如果使用Excel文件,只需将
read_csv
更改为get_merged()
函数中的read_excel
,并检查nrows
参数是否在read_excel()
函数中工作文件:
_uu01.csv:
_yu02.csv:
^{4}$您可以简单地删除任何不需要的列。查看关于删除Pandas DataFrame列的讨论:Delete column from pandas DataFrame
然后转到文档:http://pandas.pydata.org/pandas-docs/stable/dsintro.html#column-selection-addition-deletion
相关问题 更多 >
编程相关推荐