小编Cas*_*leH的帖子

将文本导入到具有多个分隔符的pandas

我有一些看起来像这样的数据:

c stuff
c more header
c begin data         
 1 1:.5
 1 2:6.5
 1 3:5.3
Run Code Online (Sandbox Code Playgroud)

我想将它导入3列数据框,例如列

a , b, c
1,  1, 0.5
etc
Run Code Online (Sandbox Code Playgroud)

我一直试图读取数据,因为2列分为':',然后将第一列拆分为''.但是我发现它令人厌烦.是否有更好的方法直接对其进行排序?

目前:

data1 = pd.read_csv(file_loc, skiprows = 3, delimiter = ':', names = ['AB', 'C'])
data2 = pd.DataFrame(data1.AB.str.split(' ',1).tolist(), names = ['A','B'])
Run Code Online (Sandbox Code Playgroud)

然而,由于我的数据具有领先的空间,这使事情变得更加复杂......

我觉得这应该是一个简单的任务,但是目前我正在考虑逐行阅读并使用一些find replace来在导入之前清理数据.

python import delimited-text pandas

16
推荐指数
1
解决办法
3万
查看次数

在列表中查找子列表的索引

试图找到带有元素的子列表的索引。我不确定如何确切地指出问题(这可能就是为什么我在手册中忽略了它)的原因,但是我的问题是:

list1 = [[1,2],[3,4],[7,8,9]]
Run Code Online (Sandbox Code Playgroud)

我想在出现1的list1中找到第一个子列表(在这种情况下,索引是2,但是lll可能会非常长)。(在某些情况下,每个数字只会出现在1个子列表中-或根本不会出现。而且这些仅是整数列表),例如

spam = My_find(list1, 7)
Run Code Online (Sandbox Code Playgroud)

将给垃圾邮件= 2我可以尝试循环以创建布尔索引

[7 in x for x in lll]
Run Code Online (Sandbox Code Playgroud)

然后使用.index来查找'true'-(按照在嵌套列表中获取子列表的索引位置的最有效方法)。但是,肯定要构建一个新的布尔列表确实效率不高。

我的代码以list1相对较小开始,但是它不断建立(最终将有100万个数字排列在list1的大约5000个子列表中

有什么想法吗?

python list nested-lists

2
推荐指数
1
解决办法
4352
查看次数

标签 统计

python ×2

delimited-text ×1

import ×1

list ×1

nested-lists ×1

pandas ×1