Python比较同一数据帧中的两个字符串列,返回匹配结果
我有一个数据帧,它有两个字符串状态列:state和state_ALPHA,我只想在两个列匹配时返回。两列都是两个字符串(AK、CA、FL),我知道预期结果应该是什么。谢谢你的帮助Python比较同一数据帧中的两个字符串列,返回匹配结果,python,pandas,dataframe,compare,matching,Python,Pandas,Dataframe,Compare,Matching,我有一个数据帧,它有两个字符串状态列:state和state_ALPHA,我只想在两个列匹配时返回。两列都是两个字符串(AK、CA、FL),我知道预期结果应该是什么。谢谢你的帮助 df8 = df7[df7['State'] == df7['STATE_ALPHA']] 我试过以下方法: df10=df9['State']==['STATE_ALPHA'] 我收到错误:数组长度不同:706对1 df10=df9['State']=['STATE_ALPHA'] 收到错误:使用@Veer
df8 = df7[df7['State'] == df7['STATE_ALPHA']]
我试过以下方法:
df10=df9['State']==['STATE_ALPHA']
我收到错误:数组长度不同:706对1
df10=df9['State']=['STATE_ALPHA']
收到错误:使用@Veera的输入示例,值的长度与索引的长度不匹配
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()
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
这个解决方案非常适合我的需要。谢谢你的帮助
df8 = df7[df7['State'] == df7['STATE_ALPHA']]
df10=df9['State']==df9['State\u ALPHA']
df9['State']==df9['State\u ALPHA']这些不会返回匹配的行,但不会给我错误。它不会给出错误,因为长度相同,但会返回一个可用于筛选的布尔序列。见下面我的答案我发布了我问题的解决方案。我们非常接近。