python - Python Pandas 显示两个数据帧之间的位置变化
问题描述
我正在阅读两个数据框,查看一列,然后用-1或+1等显示两个数据框之间的位置差异。我尝试了下面的代码,但它只0
在位置变化中显示,当英国之间应该有差异时航空公司和瑞安航空公司
first = pd.read_csv("C:\\Users\\airma\\PycharmProjects\\Vatsim_Stats\\Vatsim_stats\\Base.csv", encoding='unicode_escape')
df1 = pd.DataFrame(first, columns=['airlines', 'Position'])
second = pd.read_csv("C:\\Users\\airma\\PycharmProjects\\Vatsim_Stats\\Vatsim_stats\\Base2.csv", encoding='unicode_escape')
df2 = pd.DataFrame(second, columns=['airlines', 'Position'])
df1['Position Change'] = np.where(df1['airlines'] == df2['airlines'], 0, df1['Position'] - df2['Position'])
我也尝试用下面的代码来做,但只是不断得到一个ValueError: cannot reindex from a duplicate axis
df1.set_index('airlines', drop=False) # Set index to cross reference by (icao)
df2.set_index('airlines', drop=False)
df2['Position Change'] = df1[['Position']].sub(df2['Position'], axis=0)
df2 = df2.reset_index(drop=True)
pd.set_option('display.precision', 0)
如您所见,英国航空公司在 Base csv 中处于 3 位,在 Base 2 csv 中处于 4 位,但是在运行代码时,它只显示0
并且不会在两个数据帧之间进行数学运算。
已经坚持了好几天了,非常感谢您的帮助。
解决方案
我给你一个替代方案,我不确定它是否受到赞赏。但只是一个想法。
在阅读了两个 csv 并获得了你需要的列之后,你为什么不尝试为列'airlines' 加入两个数据框呢?它将合并两个数据框,键为“航空公司”
推荐阅读
- javascript - 在 React 应用中启用 CORS
- oauth-2.0 - Azure AD-B2C 错误:IDX10501:签名验证失败。无法匹配键:孩子:'[PII 已隐藏]',令牌:'[PII 已隐藏]'
- python - 在 Python 中使用文字创建对象
- c++ - 在 3d 点云,GPU 中寻找最近的邻居
- scala - 如何为 playframework 2.5.x 安装和配置 play-mailer
- c++ - 是否有某些关键字不应该被我“#defined”?
- loopbackjs - 环回:应用程序未定义
- javascript - 在不和谐消息中获取 URL 链接并在链接上添加一些字符
- javascript - select and remove class with JavaScript
- npm - 使用参数为不同的 webpack 条目构建 Npm