好吧,unicode的区别是小写k和大写k——你可以用它来证明自己
print(chr(107),chr(75))
。合并小写可能会解决你的问题。
然而,假设你喜欢右边的资本化,并希望保留它们。因为您正在进行正确的合并,所以我们可以知道,合并后的索引与进入时的索引相同。因此,请在合并前复制大写值,然后替换它们。
import pandas as pd
print(chr(107), chr(75)) # k K
data1 = pd.DataFrame({'county': ['mckinley', 'bell'], 'state': ['NM', 'tx'],'amount': [1, 2]})
data2 = pd.DataFrame({'county': ['mckinley', 'beLL', 'harris'], 'state': ['NM', 'TX','tx']})
#Optional: To preserve caps
orig_caps = data2[['county','state']].copy()
for item in ['county', 'state']:
data1[item] = data1[item].str.lower()
data2[item] = data2[item].str.lower()
data_merge = pd.merge(data1, data2, on=['county', 'state'], how='right')
data_merge[['county','state']] = orig_caps
print(data_merge)
收益率:
county state amount
0 mckinley NM 1.0
1 beLL TX 2.0
2 harris tx NaN