根据列条目对数据进行排序

时间:2019-02-14 07:27:16

标签: python-3.x pandas sorting dataframe text

我有一个包含两列的文本文件,例如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,但是它不返回所需的输出。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

使用indexing by strboolean indexing来检查前两个字符是否相等:

df = df[df['col1'].str[0] != df['Col2'].str[0]]
print (df)
   col1  Col2
3  A120   B19
4  A120   B20
5   B40  A205

如果可能的话,可以使用多个起始字母,并且只需要测试AB

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
相关问题