小编Luc*_*cas的帖子

Python Killed:9使用从2个csv文件创建的词典运行代码

我正在运行一个一直为我工作的代码.这次我在2个.csv文件上运行它:"data"(24 MB)和"data1"(475 MB)."data"有3列,每列约680000个元素,而"data1"有3列,每列33000000个元素.当我运行代码时,经过大约5分钟的处理后,我就会被"杀死:9".如果这是一个内存问题,如何解决呢?欢迎任何建议!

这是代码:

import csv
import numpy as np

from collections import OrderedDict # to save keys order

from numpy import genfromtxt
my_data = genfromtxt('data.csv', dtype='S', 
                 delimiter=',', skip_header=1) 
my_data1 = genfromtxt('data1.csv', dtype='S', 
                 delimiter=',', skip_header=1) 

d= OrderedDict((rows[2],rows[1]) for rows in my_data)
d1= dict((rows[0],rows[1]) for rows in my_data1) 

dset = set(d) # returns keys
d1set = set(d1)

d_match = dset.intersection(d1) # returns matched keys

import sys  
sys.stdout = open("rs_pos_ref_alt.csv", "w") 

for row in my_data:
    if row[2] in d_match: 
        print [row[1], row[2]] …
Run Code Online (Sandbox Code Playgroud)

python csv dictionary

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

蟒蛇.如何减去2个词典

我有2个词典,A和B. A有700000个键值对,B有560000个键值对.来自B的所有键值对都存在于A中,但A中的某些键是具有不同值的重复项,而某些键具有重复值但是唯一键.我想从A中减去B,所以我可以得到剩余的140000个键值对.当我根据键标识减去键值对时,由于重复键,我删除了150000个键值对.我想根据每个键值对的BOTH键和值的标识减去键值对,所以我得到140000.任何建议都是受欢迎的.

这是一个例子:

A = {'10':1, '11':1, '12':1, '10':2, '11':2, '11':3}
B = {'11':1, '11':2}
Run Code Online (Sandbox Code Playgroud)

我想得到:AB = {'10':1,'12':1,'10':2,'11':3}

我不想得到:

a)基于密钥时:

{'10':1, '12':1, '10':2}
Run Code Online (Sandbox Code Playgroud)

要么

b)基于价值观:

{'11':3}
Run Code Online (Sandbox Code Playgroud)

python dictionary subtraction

6
推荐指数
3
解决办法
2万
查看次数

在行之间应用函数,按变量分组,计算其他列中变量之间的所有可能组合

我在R中有一个很大的data.frame,其过度简化的版本看起来像这样(真正的data.frame在"Color"列中有20种颜色,在"Number"列中有10种不同的数字:

Color   Number  Y
blue    1       5
blue    2       3
blue    3       2
red     1       5
red     2       8
red     3       2
green   1       2
green   2       9
green   3       3
Run Code Online (Sandbox Code Playgroud)

对于"颜色"中的每种颜色,我想通过比较"Y"列的相应值,在"数字"列中的所有数字组合之间应用函数.让我们以一个简单的函数为例:

if x >= y, print 1, else print 0 # where x and y represent the first and second values to be compared, respectively 
Run Code Online (Sandbox Code Playgroud)

我会将此作为输出data.frame获取:

Color   Comparison  Y
blue    1_vs_2      1
blue    1_vs_3      1
blue    2_vs_1      0
blue    2_vs_3      1
blue    3_vs_1      0
blue    3_vs_2      0
red     1_vs_2 …
Run Code Online (Sandbox Code Playgroud)

r dataframe

4
推荐指数
1
解决办法
98
查看次数

如何从.txt文件中删除空行

我有一个巨大的输入.txt这种形式的文件:

0 1 0 1 0 0 0 0 0 0

0 1 0 1 0 0 0 0 0 0

0 1 0 1 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我想删除所有空行,以便创建一个新的输出.txt文件,如下所示:

0 1 0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我尝试用grep做:

grep -v '^$' test1.txt > test2.txt 
Run Code Online (Sandbox Code Playgroud)

但我得到"SyntaxError:无效的语法"

当我按照某人的建议使用pandas时,我得到不同数量的列,并且一些整数被转换为浮点数:例如:1.0而不是1

当我按照督察G4dget的建议(见下文)时,它工作得很好,只有一个问题:最后一行没有完全打印:

with open('path/to/file') as infile, open('output.txt', 'w') as outfile: …
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×3

dictionary ×2

csv ×1

dataframe ×1

r ×1

subtraction ×1