所以我试着用从csv到熊猫的python替换值代码。我知道有很多相同的问题,但即使我尝试过,我也无法得到我所需要的东西。基本上,这是我尝试使用的代码:
# 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问题是,我还必须将条件适用于其他栏目(风速质量、气温质量和露点质量),除此之外,还有其他代表每个数字的条件:
我试过一个接一个地做这件事,但它似乎很拥挤:
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") 所以我的问题是,一般说来,还有什么其他的方法可以用一个简单的版本来制作吗?谢谢!
发布于 2019-12-04 15:39:25
您可以创建一个dict然后每列应用,它可能比您的当前解决方案更容易。然后,您可以在每列中使用相同的应用程序。
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)如果数字是数据中的字符串,则可能需要引用它们。
如果列中只有这些数字,则使用以下方法更容易:
df["WIND DIRECTION QUALITY"].map(change)但是,只有当dict匹配数据集中的每一项时,这才有效。我希望这能帮到你
https://stackoverflow.com/questions/59179557
复制相似问题