Python比较同一数据帧中的两个字符串列,返回匹配结果

时间:2018-09-13 18:00:29

标签: python pandas dataframe compare matching

我有一个包含两个字符串状态列的数据框:State和STATE_ALPHA,仅在两列匹配时才返回。两列都是两个字符的字符串(AK,CA,FL),我知道预期的结果是什么。谢谢你的帮助。

我已经在下面尝试过这些:

 df10=df9['State']==['STATE_ALPHA']

我收到的错误:数组的长度不同:706 vs 1

 df10=df9['State']=['STATE_ALPHA']

我收到的错误:值的长度与索引的长度不匹配

3 个答案:

答案 0 :(得分:0)

import pandas as pd
df=pd.DataFrame({"string1":['CA','MI','AZ','NY'],"string2":['CA','MA','FL','NY']})

df_common=df[df[["string1","string2"]].apply(lambda x : x[0]==x[1],axis=1)].reset_index(drop=True).copy()

答案 1 :(得分:0)

使用@Veera中的输入示例

df=pd.DataFrame({"string1":['CA','MI','AZ','NY'],"string2":['CA','MA','FL','NY']})
df[df.string1==df.string2]
string1 string2
0   CA  CA
3   NY  NY

答案 2 :(得分:0)

此解决方案完全可以满足我的需求。谢谢你的帮助。

df8 = df7[df7['State'] == df7['STATE_ALPHA']]