小编nas*_*fri的帖子

如何合并具有相同键名的两个词典

我是Python的新手,我正在尝试编写一个将在python中合并两个字典对象的函数.例如

dict1 = {'a':[1], 'b':[2]}
dict2 = {'b':[3], 'c':[4]}
Run Code Online (Sandbox Code Playgroud)

我需要生成一个新的合并字典

dict3 = {'a':[1], 'b':[2,3], 'c':[4]}
Run Code Online (Sandbox Code Playgroud)

函数还应该使用参数"conflict"(设置为True或False).当冲突设置为False时,上面就可以了.当conflict设置为True时,代码将合并字典,如下所示:

dict3 = {'a':[1], 'b_1':[2], 'b_2':[3], 'c':[4]}
Run Code Online (Sandbox Code Playgroud)

我试图附加2个词典,但不知道如何以正确的方式做到这一点.

for key in dict1.keys():
    if dict2.has_key(key):
        dict2[key].append(dict1[key])
Run Code Online (Sandbox Code Playgroud)

python dictionary

21
推荐指数
1
解决办法
3314
查看次数

在 R 中读写 .TSV 文件

我必须对项目的 .tsv 文件进行一些分析,而且我对 R 相当陌生。在 R 中读取/写入 .tsv 文件时遇到问题。似乎当有引号时就会出现问题( “”)在行中。

原始文件中的一些记录示例如下:

org_id    org_name        description                    created at     
5762      Artifice        Artifice \comes from Latin     4/3/2014 19:42
1045      Access Dar      Microsoft "Nasdaq worldwide    7/4/2014 10:34
345       Living Asset    Lincoln Park Zoo               11/3/2014 19:42
2356      Adler Planet    Mission of black cat           12/2/2014 11:03
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码行读取该文件:

orgs <- read.delim("C:/Users/orgs.tsv", header=TRUE)
Run Code Online (Sandbox Code Playgroud)

重命名列后,我使用以下代码编写文件:

write.table(orgs, file = "C:/Users/orgs_updated.tsv", row.names=FALSE, sep="\t")
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在另一个程序中读取此文件(orgs_updated.tsv)时,它不喜欢任何列中都有引号。我正在使用下面的代码再次读取该文件:

orgs_updated <- read.delim("C:/Users/orgs_updated.tsv", sep="", header=TRUE, quote="\"")
Run Code Online (Sandbox Code Playgroud)

文件是这样读取的,即读取错误,并添加错误的行。

org_id    name        description                    created at     
5762      Artifice        Artifice \comes from Latin …
Run Code Online (Sandbox Code Playgroud)

r

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

如何在dplyr中将多个列名称作为输入传递给group_by

我是R和dplyr包的新手.我试图将变量传递给dplyr group_by,我们可以改变/改变它.例如,在使用航班数据集时,我可以使用以下代码获取任何列(或多列)的行数:

library(nycflights13)
flights %>% group_by(origin) %>% tally()
flights %>% group_by(carrier) %>% tally()
flights %>% group_by(origin,carrier) %>% tally()
Run Code Online (Sandbox Code Playgroud)

但是如果我想传递所用列的名称,将group_by作为变量传递,则在使用多个列名时它不起作用.

group="carrier"
flights %>% group_by_(group) %>% tally()

group="origin"
flights %>% group_by_(group) %>% tally()

group=c("origin","carrier") #This does not work
flights %>% group_by_(group) %>% tally()
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助.谢谢.

r dplyr

6
推荐指数
1
解决办法
2237
查看次数

如何在R中使用Sub函数

dopers在R中读一个csv文件" ".

dopers <- read.csv(file="generalDoping_alldata2.csv", head=TRUE,sep=",")
Run Code Online (Sandbox Code Playgroud)

读完文件后,我必须做一些数据清理.例如,country如果它在列中

"美国"或"美国"

我想用它替换它 "USA"

我想确保,如果单词是" United States "或者"United State ",即使他们我的代码应该工作.我想说的是,即使在"United States"替换之前和之后有任何字符"USA".我知道我们可以sub()为此目的使用功能.我在网上找到了这个,但我不明白是什么"^" "&" "*" ".".有人可以解释一下.

dopers$Country = sub("^UNITED STATES.*$", "USA", dopers$Country)
Run Code Online (Sandbox Code Playgroud)

regex r

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

如何使用多个字典转换字符串,以便 json.load 可以解析它?

我如何在 python 中编写一个函数,该函数将接受一个带有多个字典的字符串,每行一个,并将其转换,以便 json.loads 可以在单次执行中解析整个字符串。

例如,如果输入是(每行一个字典):

Input = """{"a":[1,2,3], "b":[4,5]}
           {"z":[-1,-2], "x":-3}"""
Run Code Online (Sandbox Code Playgroud)

这不会用 json.loads(Input) 进行解析。我需要编写一个函数来修改它,以便它能够正确解析。我在想如果该函数可以将其更改为这样的内容,json将能够解析它,但我不确定如何实现它:

Input2 = """{ "Dict1" : {"a":[1,2,3], "b":[4,5]},
               "Dict2" : {"z":[-1,-2], "x":-3} }"""
Run Code Online (Sandbox Code Playgroud)

python json dictionary

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

标签 统计

r ×3

dictionary ×2

python ×2

dplyr ×1

json ×1

regex ×1