我有两个 pandas 数据框,如下所示:
df1:
n column1
0 5.0 0.0
1 6.0 0.0
2 7.0 0.0
3 8.0 0.0
4 9.0 0.0
5 10.0 0.0
df2:
n column2
0 6.0 1.0
1 7.0 1.0
2 8.0 1.0
Run Code Online (Sandbox Code Playgroud)
我只想对n相同的行进行column1求和。所需的输出如下所示:column2
df3:
n column1
0 5.0 0.0
1 6.0 1.0
2 7.0 1.0
3 8.0 1.0
4 9.0 0.0
5 10.0 0.0
Run Code Online (Sandbox Code Playgroud)
请注意:
df2零填充 的列并执行经典求和。到目前为止我所尝试的结果如下:
n column1
0 5.0 1.0
1 …Run Code Online (Sandbox Code Playgroud)我有一个由一些商业软件生成的文本文件,如下所示.它由括号分隔的部分组成,每个部分都有数百万个元素,但确切的值会从一个案例变为另一个案例.
(1
2
3
...
)
(11
22
33
...
)
(111
222
333
...
)
Run Code Online (Sandbox Code Playgroud)
我需要实现如下输出:
1; 11; 111
2; 22; 222
3; 33; 333
... ... ...
Run Code Online (Sandbox Code Playgroud)
我发现了一种复杂的方式:
执行sed操作得到
1
2
3
...
#
11
22
33
...
#
111
222
333
...
Run Code Online (Sandbox Code Playgroud)使用awk如下将文件拆分为几个子文件
awk -v RS="#" '{print > ("splitted-" NR ".txt")}'
Run Code Online (Sandbox Code Playgroud)使用sed再次从子文件中删除空格
sed -i '/^[[:space:]]*$/d' splitted*.txt
Run Code Online (Sandbox Code Playgroud)把所有东西加在一
paste splitted*.txt > out.txt
Run Code Online (Sandbox Code Playgroud)添加字段分隔符(在我的bash脚本中定义)
awk -v sep=$my_sep 'BEGIN{OFS=sep}{$1=$1; print }' out.txt > formatted.txt
Run Code Online (Sandbox Code Playgroud)我觉得这很糟糕,因为我循环了几百万行.即使返回时间非常好(约80秒),我也想找到一个完整的awk解决方案,但无法实现.就像是:
awk 'BEGIN{RS="(\\n)"; OFS=";"} { print …Run Code Online (Sandbox Code Playgroud)