我知道允许您传递包含要跳过的行索引的列表的跳过。但是,我有我想要保留的行的索引。
假设我的cvs文件对于数百万行来说是这样的:
import wx
def get_path(wildcard):
app = wx.App(None)
style = wx.FD_MULTIPLE | wx.FD_FILE_MUST_EXIST
dialog = wx.FileDialog(
None,
'Open',
wildcard=wildcard,
style=style)
if dialog.ShowModal() == wx.ID_OK:
path = dialog.GetPath()
else:
path = None
dialog.Destroy()
return path
print get_path('*.txt')
我想加载的索引列表只有2,3,所以
A B
0 1 2
1 3 4
2 5 6
3 7 8
4 9 0
skiprows函数的输入为[0,1,4]。但是,我只有[2,3]。
我正在尝试类似的事情:
index_list = [2,3]
但没有运气..有什么建议吗?
谢谢,我感谢所有的帮助,
答案 0 :(得分:3)
我认为您需要先找到行数,例如this。
num_lines = sum(1 for line in open('myfile.txt'))
然后你需要删除index_list
:
to_exclude = [i for i in num_lines if i not in index_list]
然后加载您的数据:
pd.read_csv(path, skiprows = to_exclude)
答案 1 :(得分:1)
您可以在skiprows
参数中传入lambda函数。例如:
rows_to_keep = [2,3]
pd.read_csv(path, skiprows = lambda x: x not in rows_to_keep)
您可以在文档here
中了解更多信息