繁体   English   中英

Pandas:read_csv(在单个文件中读取多个表)

[英]Pandas: read_csv (read multiple tables in a single file)

我有一个文件(如下所示),有多个CSV表。 此文件上载到数据库。 我想对这个文件做一些操作。 为此,我正在考虑使用pandas使用read_csv函数将每个表读入一个单独的数据帧。 但是,通过文档,我没有看到指定要读/解析的行子集的选项。 这可能吗? 如果没有,还有其他选择吗?

样本文件:

TABLE_1
col1,col2
val1,val2
val3,val4

TABLE_2
col1,col2,col3,col4
val1,val2,val3,val4
...

...

我可以对文件进行初始传递,以确定每个表的开始/结束行。 但是,read_csv参数之一是“ filepath_or_buffer ”,但我并不完全确定'缓冲区'部分是什么。 它是字符串列表还是一个大字符串或其他内容? 我可以用什么缓冲区? 有人能指出我使用带缓冲区的read_csv的小例子吗? 谢谢你的任何想法。

更新:

如果你想跳过特定的行[0,1,5,16,57,58,59] ,你可以使用skiprows

df = pd.read_csv(filename, header=None, 
                 names=['col1','col2','col3'], skiprows=[0,1,5,16,57,58,59])

跳过前两行并读取100行后,您可以使用@Richard Telford在评论中提到的skiprowsnrows参数:

df = pd.read_csv(filename, header=None, names=['col1','col2','col3'],
                 skiprows=2, nrows=100)

这是“缓冲区”的一个小例子:

import io
import pandas as pd

data = """\
        Name
0  JP2015121
1    US14822
2    US14358
3  JP2015539
4  JP2015156
"""
df = pd.read_csv(io.StringIO(data), delim_whitespace=True, index_col=0)
print(df)

相同没有标题:

data = """\
0  JP2015121
1    US14822
2    US14358
3  JP2015539
4  JP2015156
"""
df = pd.read_csv(io.StringIO(data), delim_whitespace=True, index_col=0,
                 header=None, names=['Name'])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM