Pandas,N行后如何停止读取csv?

2024-04-19 01:07:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些csv文件我想读,不管出于什么原因,它的格式是这样的

A B C
1 3 1
2 2 2
3 1 3


D
1
2
3

这里的问题是D列在其他列的下面,这让Pandas非常不高兴,一旦它读完A列,直接进入D的列名字符串。在

我当然可以像

^{pr2}$

基本上,nrows = length_of_A_B_C。问题是,我不知道D之前的行数,而且在知道之前我无法读取csv。在

我怎么解决这个问题?我是否可以停止基于条件读取行,例如当我在标题中输入D时?在


Tags: 文件ofcsv字符串标题pandas格式原因
1条回答
网友
1楼 · 发布于 2024-04-19 01:07:36

一个可能的答案已经在原始帖子的评论中发布了,但是我仍然觉得,对于一个相当简单的任务(或者也许我只是个坏人,哈)来说,他们是不必要的,很难马上想出答案。在我的案例中,我认为最好的方法是:

df = pd.read_csv(file, dtype = "str", names = ["A","B","C"])

现在Pandas将用NaN填充所有底部空行,这正好标记了D列所包含的所有行。所有这些行都可以被丢弃:

^{pr2}$

因为我们需要它作为一个数字数据帧

df = df.apply(pd.to_numeric)

现在这可以用来跳过只解析D的行:

D_only = pd.read_csv(file, skiprows = len(df["A"])

并与pd.concat(df, D_only), axis=1)连接

免责声明:我不知道计算效率有多高。

相关问题 更多 >