【问题标题】:How to handle 'missing key values' in CSV dictionary and working through Pandas data frame?如何处理 CSV 字典中的“缺失键值”并通过 Pandas 数据框工作?
【发布时间】:2020-04-11 12:36:20
【问题描述】:

我想拒绝 pandas 数据框中缺少键值的记录,并仅分配 CSV 中存在的那些记录。例如,仅匹配提及“价格”的那些“名称”。

'Names' 'price'
Ram      100
John     200
dan 
Mike     500
Capri   

【问题讨论】:

  • 不清楚。您是否将现有的 DataFrame 与单独的 csv 进行比较? minimal reproducible example 会很有用。另请阅读How to Ask
  • 什么是“key”?
  • 在示例中。 'Key' 是 'Names' 并且 'Price' 被分配给它。我只需要保留那些“价格”可用的记录。我的字典是 CSV 格式,并且正在通过 Python 访问我的 DF。
  • 尽管有多个 cmets,但仍不清楚...

标签: python csv dataframe dictionary data-analysis


【解决方案1】:

你可以使用:

df.dropna() 

它将删除整行的空值

要计算具有 NaN 值的行,请执行以下操作:

df.shape[0] - df.dropna().shape[0] 
# 2

如果您的计数与地图匹配,您可以这样做:

dictionary= {'Ram':100,'John':200,'Mike':500}

len(df[df.Names.map(dictionary).fillna(0) ==0])                                                                                                                                     
# 2

len(df[df.Names.map(dictionary).fillna(0) >0])                                                                                                                                      
# 3

【讨论】:

  • 我认为 OP 想要“拒绝”没有“键”值的行(但可能有其他行,因此不完全为空)。
  • 感谢您的快速回复。我还需要计算我从数据框的该列中拒绝的记录数,该列缺少字典值。您的想法将不胜感激。
  • @Rahul 我将其添加到我的答案中,希望对您有所帮助
  • 谢谢。赞赏。您通过索引访问形状。如果我想通过列名访问怎么办。我有200多列。因此,通过名称访问将很容易。任何建议。
  • 您可以以相同的方式在每列中使用它,这就是您的意思:df['price'].shape[0] - df['price'].dropna().shape[0 ]
猜你喜欢
  • 2022-08-05
  • 2021-11-03
  • 2021-07-28
  • 2018-05-01
  • 1970-01-01
  • 2016-07-04
  • 1970-01-01
  • 2017-02-10
  • 2022-01-10
相关资源
最近更新 更多