我有一个包含两列的文本文件,例如col1和col2。
col1 Col2
A20 A19
A120 A117
A120 A118
A120 B19
A120 B20
.
.
.
B40 A205
,依此类推。 我想对以上各列进行排序,以便它仅给我那些具有A和B并排的条目,例如:
col1 col2
A120 B20
B40 A205
我尝试使用pd.DataFrame.sort,但是它不返回所需的输出。 任何帮助将不胜感激。
答案 0 :(得分:3)
使用indexing by str
和boolean indexing
来检查前两个字符是否相等:
df = df[df['col1'].str[0] != df['Col2'].str[0]]
print (df)
col1 Col2
3 A120 B19
4 A120 B20
5 B40 A205
如果可能的话,可以使用多个起始字母,并且只需要测试A
和B
:
print (df)
col1 Col2
0 A20 C19 <-changed sample data
1 A120 A117
2 A120 A118
3 A120 B19
4 A120 B20
5 B40 A205
a = df['col1'].str[0]
b = df['Col2'].str[0]
m1 = a.isin(['A','B'])
m2 = b.isin(['A','B'])
m3 = a != b
df = df[m1 & m2 & m3]
print (df)
col1 Col2
3 A120 B19
4 A120 B20
5 B40 A205