【问题标题】:Matching row values with column values in pandas将行值与熊猫中的列值匹配
【发布时间】:2021-05-19 20:08:36
【问题描述】:
  Holding Period      Classification Type                        Optimization & Gap Risk                                   Directional Risk
0     Short Term  Optimization & Gap Risk                      Frequency of Optimization                                   Beta Calibration
1    Medium Term         Directional Risk        Frequency of Data Input for alpha model                frequency of Beta or $ Rebalanciing
2      Long Term            Concentration  Ability to React to Change in Market Risk/Vol  Is beta/$ neutrality controlled through index,...

我想将分类类型列中的值与以下列的值进行匹配。

我想要某种类型的所有值的列表作为结果。

  Holding Period      Classification Type     List
0     Short Term  Optimization & Gap Risk     ['Frequency of Optimization', 'Frequency of Data Input for alpha model', 'Ability to React to Change in Market Risk/Vol']
1    Medium Term         Directional Risk     ['Beta Calibration', 'frequency of Beta or $ Rebalanciing', 'Is beta/$ neutrality controlled through index, options or single name positions?']
2      Long Term            Concentration     NA

我希望这能说明我想要什么。基本上是与“分类类型”列中的值同名的列中所有值的聚合。

【问题讨论】:

  • 你不能用我给出的数据框来帮助自己吗?
  • 优化和差距风险、定向风险是“分类类型”列中的值,而不是列名。
  • 你可以使用索引,cols = list(df['Classification Type'].values),然后是df[cols]

标签: pandas pandas-groupby pivot-table data-manipulation


【解决方案1】:

我会这样做。

我将通过将列中的所有值捕获为列表来为两列创建一个字典。

  • 优化和缺口风险
  • 方向性风险

你可以这样做:

riskdict = {}
for col in df.columns[2:]:
    riskdict[col] = df[col].tolist()

然后我将Classification Type 列映射到字典。这会给你你想要的。

完整代码为:

riskdict = {}
for col in df.columns[2:]:
    riskdict[col] = df[col].tolist()

df['List'] = df['Classification Type'].map(riskdict)
print (df)

这个输出将是:

  Holding Period  ...                                               List
0     Short Term  ...  [Frequency of Optimization, Frequency of Data ...
1    Medium Term  ...  [Beta Calibration, frequency of Beta or $ Reba...
2      Long Term  ...                                                NaN

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 2020-09-26
    • 2021-04-10
    • 2021-07-28
    • 2022-08-04
    • 2022-01-24
    • 2019-01-20
    相关资源
    最近更新 更多