【问题标题】:Python 3 Pandas multiple dataframe columns comparisonPython 3 Pandas 多个数据框列比较
【发布时间】:2020-05-15 11:41:00
【问题描述】:

我有几个大型数据集,其中包含大型交易所交易产品组合的预期缺口(风险衡量指标)。我正在寻找比较我使用彭博社中的特定标准过滤的名称列表,以查看我的第一个数据集中是否有匹配项。我首先将 Bloomberg 的代码导出到 csv 文件中。我还将我的风险信息(包含一列代码)导出为 csv 文件。我将这两个文件读入 pandas 数据框对象,并隔离了我想比较的列。我的风险数据集包含大约 152,000 个条目,我的 Bloomberg 股票代码文件有 321 个名称。最终,我只想创建一个新列,以指示我的风险数据集中的条目是否包含在 Bloomberg Tickers 列表中(即 TRUE/FALSE 或 0/1 的条目)。

我已经尝试了从 Stackoverflow 找到的以下代码

china_names['EQY_FUND_CRNCY'].isin(data['Risk Group Symbol']).value_counts()

它为每个条目返回 false,即使我可以直观地看到 2 之间的一些匹配

我也试过这个:

values = set(data['Risk Group Symbol'])
data['In China?'] = china_names['EQY_FUND_CRNCY'].isin(values)
data['In China?'].describe()

似乎无论我尝试哪种方法来比较列,我都无法识别两者之间的匹配。我不明白我做错了什么。问题可能是 data['Risk Group Symbol'] 和 china_names['EQY_FUND_CRNCY'] 中的代码之间的文本差异吗?

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

这样的事情应该可以工作:

china_names.loc[china_names['EQY_FUND_CRNCY'].isin(data['Risk Group Symbol'])]['EQY_FUND_CRNCY'].value_counts()

【讨论】:

  • 如果您仍然要选择它之外的列,那么使用.loc[] 有什么意义?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-15
  • 2017-07-11
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多