【问题标题】:Filter my Dictonary where the key = a certain value过滤我的字典,其中键 = 某个值
【发布时间】:2019-11-17 20:36:59
【问题描述】:

我写了以下代码:

if(True):
        List = df['Column1'].unique()
        for i in range(len(List)):
This does not work -->  df_sc.key == List[i] <-- This does not work
            df_List = df[df['Column1'] == List[i]]
            outputFileName = 'Auswertung_' + List[i].replace('.', '-') + '.xlsx'
            analyze_dataframe(df_List, df_sc ,outputFileName)

df_sc 是一个包含键和值的字典(值是数据帧)。我想要做的是过滤 key = List[i] 的字典。

但我的代码不起作用。

【问题讨论】:

  • 请提供数据框的示例。
  • 您不会按键“过滤”字典。使用字典的目的是直接访问各个键。就做df_sc[List[i]]
  • 我忘了提到我的字典的键与我的数据框 column1 中的值相同。

标签: python pandas loops dictionary


【解决方案1】:

您无法过滤字典。我想一种方法是,使用 dict 作为 DataFrame 的源,df

df = pd.DataFrame.from_dict(your_dict)

这样,您可以使用您的list 通过.isin() 方法对其进行过滤:

df = df.loc[df['column to filter with your list'].isin(your_list_source_for_filtering)]

新的df 现在将只包含原始df 中满足'column to filter with your list' 列值中检查的your_list_source_for_filtering 列表值的列和行。

使用它,您不必执行粗略的循环。

希望这会有所帮助:))。

【讨论】:

  • 但是,您可以坚持对您的字典进行“过滤”,但它不会像解析每个键并检查它是否存在于您的 filter_list 中那样“过滤”,如果 @987654332 @ 将其值附加到列表中,否则,移动到下一个键。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2014-12-07
相关资源
最近更新 更多