2024-03-29 10:34:48 发布
网友
假设我有一个.csv文件如下所示:
0,0 1,1 2,2 3,3 4,4 5,5,5,5 6,6,6,6 7,7,7,7
如何从第5行创建数据帧,而不依赖于行号?显然,我知道你可以做header=5,但我希望它做一些更像header=#when it reaches 4 columns#的事情,不管那一行可能是什么
header=5
header=#when it reaches 4 columns#
我意识到这个问题没有我所需要的那么具体,所以我在这里重申:Creating a dataframe from different rows
你可以在理解中使用str.count。然后将其包装到数据帧构造函数中
str.count
from pandas.io.common import StringIO as sio pd.read_csv(sio( ''.join(l for l in open('test.csv') if l.count(',') > 2) ), header=None) 0 1 2 3 0 5 5 5 5 1 6 6 6 6 2 7 7 7 7
我的解决方案是首先将csv作为普通文件读入,逐行过滤该文件,然后使用io.StringIO将“编辑过的csv”作为dataframe读入。注意:这不适用于大文件
例如:
import io import pandas as pd new_csv = [] with open('csv.csv') as f: for line in f: if len(line.split(',')) >= 4: new_csv.append(line) file_io = io.StringIO('\n'.join(new_csv)) df = pd.read_csv(file_io)
你可以在理解中使用
str.count
。然后将其包装到数据帧构造函数中我的解决方案是首先将csv作为普通文件读入,逐行过滤该文件,然后使用io.StringIO将“编辑过的csv”作为dataframe读入。注意:这不适用于大文件
例如:
相关问题 更多 >
编程相关推荐