我有一个Map [String,List [String]],我想反转它.例如,如果我有类似的东西
"1" -> List("a","b","c")
"2" -> List("a","j","k")
"3" -> List("a","c")
Run Code Online (Sandbox Code Playgroud)
结果应该是
"a" -> List("1","2","3")
"b" -> List("1")
"c" -> List("1","3")
"j" -> List("2")
"k" -> List("2")
Run Code Online (Sandbox Code Playgroud)
我试过这个:
m.map(_.swap)
Run Code Online (Sandbox Code Playgroud)
但它返回一个Map [List [String],String]:
List("a","b","c") -> "1"
List("a","j","k") -> "2"
List("a","c") -> "3"
Run Code Online (Sandbox Code Playgroud) 我不确定导入是否是正确的用词.我是Perl和Bash的初学者.我在Bash上设置了一个变量,所以当我这样做时:
echo $PRDIR
Run Code Online (Sandbox Code Playgroud)
它打印一个字符串(这是一个目录名)
我想将该字符串导入Perl,我不知道该怎么做.我试过了:
$varex = system("$PRDIR");
print "$varex";
Run Code Online (Sandbox Code Playgroud)
并且
$varex = system("echo $PRDIR");
print "$varex";
Run Code Online (Sandbox Code Playgroud)
但这不起作用(我理解最后一个,它打印"0"因为那是echo的返回值).我也试过重定向stdout
到变量,但我不能.
假设我有一个以日期为索引的数据框。每行包含有关该日期某个事件的信息。问题是在所述日期可能有不止一个事件。这是一个示例数据帧,df2:
one two
1/2 1.0 1.0
1/2 1.0 1.0
1/4 3.0 3.0
1/5 NaN 4.0
Run Code Online (Sandbox Code Playgroud)
我想将缺失的日期添加到数据框中,以前我可以使用 .loc 来完成。现在 .loc 引发以下警告:
将 list-likes 传递给 .loc 或 [] 带有任何缺失的标签将在未来引发 KeyError ,您可以使用 .reindex() 作为替代。
这是我的代码(它有效但会引发警告):
# I want to add any missing date- in this example, 1/3.
df2.loc[["1/2","1/3","1/4","1/5"]]
one two
1/2 1.0 1.0
1/2 1.0 1.0
1/3 NaN NaN
1/4 3.0 3.0
1/5 NaN 4.0
Run Code Online (Sandbox Code Playgroud)
我试过按照它的建议使用 reindex,但我的索引包含重复的值,所以它不起作用:
#This doesn't work
df2.reindex(["1/2","1/3","1/4","1/5"])
Run Code Online (Sandbox Code Playgroud)
ValueError:无法从重复轴重新索引
我该怎么做才能替换旧的 loc?