首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多变量替换熊猫中的多列

用多变量替换熊猫中的多列
EN

Stack Overflow用户
提问于 2019-12-04 15:35:48
回答 1查看 68关注 0票数 2

所以我试着用从csv到熊猫的python替换值代码。我知道有很多相同的问题,但即使我尝试过,我也无法得到我所需要的东西。基本上,这是我尝试使用的代码:

代码语言:javascript
复制
# importing pandas as pd 
import pandas as pd 

# Making data frame from the csv file 
raw_data = pd.read_csv("ogimet.csv") 

df["WIND DIRECTION QUALITY"]= df["WIND DIRECTION QUALITY"].replace(1, "Passed all quality control checks") 
print (df)

#saving the pd
export_csv = df.to_csv (r'oh.csv', index = None, header=True) #Don't forget to add '.csv' at the end of the path

问题是,我还必须将条件适用于其他栏目(风速质量、气温质量和露点质量),除此之外,还有其他代表每个数字的条件:

  • '2':"Suspect",

  • '3':"Erroneous",

  • ‘0’:“通过总限额检查”,

  • ‘1’:“通过了所有质量控制检查”,
  • ‘4’:“通过总限额检查,数据来源于NCEI数据源”,‘
  • 5’:“通过了所有质量控制检查,数据来自NCEI数据源”,
  • '6':"Suspect,数据来自NCEI数据源“,
  • '7':"Erroneous,数据来源于NCEI数据源“,‘9’:”通过总限制检查元素是否存在

我试过一个接一个地做这件事,但它似乎很拥挤:

代码语言:javascript
复制
df["WIND DIRECTION QUALITY"]= df["WIND DIRECTION QUALITY"].replace(2, "Suspect")
df["WIND DIRECTION QUALITY"]= df["WIND DIRECTION QUALITY"].replace(3, "Erroneous") 
df["WIND SPEED QUALITY"]= df["WIND DIRECTION QUALITY"].replace(2, "Suspect") 
df["WIND SPEED QUALITY"]= df["WIND DIRECTION QUALITY"].replace(3, "Erroneous")  

所以我的问题是,一般说来,还有什么其他的方法可以用一个简单的版本来制作吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-04 15:39:25

您可以创建一个dict然后每列应用,它可能比您的当前解决方案更容易。然后,您可以在每列中使用相同的应用程序。

代码语言:javascript
复制
change={0:"Passed gross limits check",
1:"Passed all quality control checks",
2:"Suspect",
3:"Erroneous",
4:"Passed gross limits check, data originate from an NCEI data source", 
5:"Passed all quality control checks, data originate from an NCEI data source",
6:"Suspect, data originate from an NCEI data source",
7:"Erroneous, data originate from an NCEI data source", 
9:"Passed gross limits check if elements is present"}


df["WIND DIRECTION QUALITY"].apply(lambda x: change[x] if x in change.keys() else x)

如果数字是数据中的字符串,则可能需要引用它们。

如果列中只有这些数字,则使用以下方法更容易:

代码语言:javascript
复制
df["WIND DIRECTION QUALITY"].map(change)

但是,只有当dict匹配数据集中的每一项时,这才有效。我希望这能帮到你

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59179557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档