我有一个12 GB的CSV文件.我希望只从这些数据中提取一些列,然后编写一个新的CSV,希望我可以加载到R中进行分析.
问题是我在尝试在写入新CSV文件之前立即加载整个列表时出现内存错误.如何逐行解析数据然后创建CSV输出?
这是我到目前为止:
import pandas
colnames = ['contributor name', 'recipient name', 'recipient party', 'contributor cfscore', 'candidate cfscore', 'amount']
DATA = pandas.read_csv('pathname\filename.csv', names=colnames)
DATA.to_csv(''pathname\filename.csv', cols = colnames)
Run Code Online (Sandbox Code Playgroud) 在绘制网络图之前,我试图使用gsub将Igraph顶点变量中的值更改为颜色.
问题是我的图表有3个我关心的值,还有许多其他的我只想分组为"其他"并分配1种颜色.
例如,如果我有这样的数据:
Name........Value
A............1
B............2
C............3
D............4
E............5
Run Code Online (Sandbox Code Playgroud)
我有这样的代码:
V(g)$color=V(g)$value #assign the "Value" attribute as the vertex color
V(g)$color=gsub("1","red",V(g)$color) #1 will be red
V(g)$color=gsub("2","blue",V(g)$color) #2 will be blue
V(g)$color=gsub("3", "yellow", V(DMedge)$color) #3 is yellow
Run Code Online (Sandbox Code Playgroud)
我可以添加什么代码来使4和5成为其他颜色(例如绿色)?非常感谢您的帮助!
我有两个清单,每个清单的长度约为160万个项目。每个项目要么为空,要么在其中包含一个或多个字符串的嵌入式列表。不幸的是,列表之一中缺少数据,因此两者不对应。我想将这些列表的内容写到平面数据框中,但是如果数组的长度不同则不能。
我已经尝试过一个for循环,当它检测到一个项目在一个列表中的长度与另一个列表中的长度不同时,将NA嵌入其中一个列表中,但是这种方法要花很长时间,因为它必须遍历160万个项目。
有没有比for-loop方法更快,更优雅的方法来做到这一点。从整体上看,整个过程需要大约6个小时。
编辑:这是我的意思的示例:
list_A = [[''],[''],[''],['a'],['a','b','c'],[''],['d']]
list_B = [[''],[''],[''],['a'],[''],[''],['']]
Run Code Online (Sandbox Code Playgroud)
我想要将NA放入list_B的空列表中,这样list_B看起来像:
list_A = [[''],[''],[''],['a'],['a','b','c'],[''],['d']]
list_B = [[''],[''],[''],['a'],['NA','NA','NA'],[''],['NA']]
Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中包含一系列与账单ID相对应的六位数字.以奇数开头的ID对应于房屋投票,而偶数编号对应于参议院投票.例如,我的变量看起来像这样:
var <- runif(20, 100000, 999999)
Run Code Online (Sandbox Code Playgroud)
我坚持试图找出一个grep()代码,我可以使用subset()命令来分隔以偶数开头的值和以奇数开头的值.有没有人有什么建议?谢谢!
我试图将文件夹中的所有csv文件合并为一个大型csv文件.我还需要向这个合并的csv添加一个新列,它显示每行来自的原始文件.这是我到目前为止的代码:
import csv
import glob
read_files = glob.glob("*.csv")
source = []
with open("combined.files.csv", "wb") as outfile:
for f in read_files:
source.append(f)
with open(f, "rb") as infile:
outfile.write(infile.read())
Run Code Online (Sandbox Code Playgroud)
我知道我必须以某种方式重复每个f为每个csv中的行数,然后将其作为新列附加到.write命令,但我不知道如何执行此操作.谢谢大家!
与此类似的问题在这里,我试图找到一个组的最大值和当前行的值之间的差异.
例如,如果我有以下数据集:
ID <- c(1,1,1,2,2,2,2,3,3)
Value <- c(2,3,5,2,5,8,17,3,5)
group <- data.frame(Subject=ID, pt=Value)
Run Code Online (Sandbox Code Playgroud)
我将如何创建一个名为"diff"的新列,它将是当前行的值与该组中的最大值之间的差异?
谢谢您的帮助!