对于以下熊猫数据框
servo_in_position second_servo_in_position Expected output
0 0 1 0
1 0 1 0
2 1 2 1
3 0 3 0
4 1 4 2
5 1 4 2
6 0 5 0
7 0 5 0
8 1 6 3
9 0 7 0
10 1 8 4
11 0 9 0
12 1 10 5
13 1 10 5
14 1 10 5
15 0 11 0
16 0 11 0
17 0 11 0
18 1 12 …Run Code Online (Sandbox Code Playgroud) 我正在Linux上工作。我有2个文件-file1.dat和file2.dat。
cat file1.dat
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
对于file2:
cat file2.dat
1a
2a
3a
4a
5a
6a
7a
8a
9a
10a
Run Code Online (Sandbox Code Playgroud)
我想用file2.dat的前3行替换file1.dat的前4行。所以我的输出如下
cat file1.dat
1a
2a
3a
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我尝试了以下输入:
sed -i.bak '1,4d;3r file2.dat' file1.dat
Run Code Online (Sandbox Code Playgroud)
但是使用此输入,我有以下输出:
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我应该如何修改输入命令?我尝试了各种组合。
我想仅交换(交换)pandas 中的列名,最好使用单行。另一个问题是我有大约 100 列,这导致我无法重新分配所有列名称,因此我想替换成对的选定列名称。我不知道列的索引(它会有所不同),所以我必须使用列名。
我尝试了以下代码:
import pandas as pd
probes = {'Spam': [0.0,1.0],
'Ham': [1.0,0.0],
'PT011': [0.11,0.21],
'PT012': [0.12,0.22],
'PT021': [0.21,0.11],
'PT022': [0.22,0.12]}
df = pd.DataFrame(probes,columns= ['Spam','Ham','PT011', 'PT012','PT021','PT022'])
print("Before renaming:\n",df)
df.rename(columns={'PT011':'PT021', 'PT012':'PT022','PT021':'PT011','PT022':'PT012'}, inplace=True)
print("After renaming:\n",df)
Run Code Online (Sandbox Code Playgroud)
我得到了:
Before renaming:
Spam Ham PT011 PT012 PT021 PT022
0 0.0 1.0 0.11 0.12 0.21 0.22
1 1.0 0.0 0.21 0.22 0.11 0.12
After renaming:
Spam Ham PT021 PT022 PT011 PT012
0 0.0 1.0 0.11 0.12 0.21 0.22
1 1.0 0.0 0.21 0.22 0.11 0.12 …Run Code Online (Sandbox Code Playgroud)