使用python如何为三元变量指定0、1、2?

使用python如何为三元变量指定0、1、2?,python,python-2.7,dictionary,enums,binary,Python,Python 2.7,Dictionary,Enums,Binary,我有csv文件,列名为:PH,K,Zn,S,Fe…等等。每列有3种不同类型的输出,例如: PH S Zn Fe Cu Mn Acidic Low Low Medium High Medium Alkaline High Medium Medium High High Acidic Medium Low Medium High High Neutral High Low M

我有csv文件,列名为:PH,K,Zn,S,Fe…等等。每列有3种不同类型的输出,例如:

PH       S       Zn     Fe         Cu   Mn
Acidic   Low    Low     Medium  High    Medium
Alkaline High   Medium  Medium  High    High
Acidic  Medium  Low     Medium  High    High
Neutral High    Low     Medium  High    High
Acidic   Low    Low     Medium  High    High
Acidic   Low    Low     Medium  High    High
Acidic  Medium  Medium  Medium  High    High
我想给出

Acidic = 0, Neutral = 1, Alkaline = 2
Low = 0, Medium = 1, High = 2
如何编写自动转换酸性=0、中性=1、碱性=2的代码?

Python提供了该类。介绍了使用枚举的原因。在您的情况下,它们看起来像:

代码:

演示代码:

产生:

演示代码2:

产生:

好吧,大概是

dicts = {
   'PH' : {'Acidic': 0, 'Alkaline': 1, 'Neutral': 2},
   'S': {'Low': 0, 'High': 1, 'Medium': 2},
   # etc
} 
with open(your_file) as file:
    table = []
    reader = csv.DictReader(file)
    for row in reader:
        new_row = {key: dicts[key][value] for (key, value) in row.items()}
        table.append(new_row)            

0 1 2不是二进制文件。。。0,1是binary@CedricDruck,哦,好的,如何将低、中、高转换为0、1、2?可能吗?意图或文件格式不清楚,请详细说明。我将使用dicts。。类似于ph_dict={'acid':1,'Neutral':2,'alkary':3}如果您正在处理一些机器学习任务,并且正在使用一个库,那么scikit learn和pandas有一些内置函数来完成这些任务。我可以使用1,2,3,数字输出进行下一次使用enum的分析吗?是的,该值是一个数字,请参见示例。是的,这是实际的Python代码。。问题是什么?您的_文件意味着我的文件名是samplefile.csv,因此我使用open samplefile.csv作为文件:?您必须使用某种文件路径,是的。请参阅和reader=csv.DictReaderfile,这里我有use file或我的路径?不,file是openyour_file的结果,您只需调整your_file变量
print(PH['Acidic'].value)
print(Concentration['Medium'].value)
1
2
for i in range(1, 4):
    ph = PH(i)
    concentration = Concentration(i)
    print(ph, ph.name, ph.value)
    print(concentration, concentration.name, concentration.value)
PH.Acidic Acidic 1
Concentration.Low Low 1
PH.Neutral Neutral 2
Concentration.Medium Medium 2
PH.Alkaline Alkaline 3
Concentration.High High 3
dicts = {
   'PH' : {'Acidic': 0, 'Alkaline': 1, 'Neutral': 2},
   'S': {'Low': 0, 'High': 1, 'Medium': 2},
   # etc
} 
with open(your_file) as file:
    table = []
    reader = csv.DictReader(file)
    for row in reader:
        new_row = {key: dicts[key][value] for (key, value) in row.items()}
        table.append(new_row)