【发布时间】:2021-06-16 19:40:59
【问题描述】:
我正在使用 panadas 读取一些数据,这是数据框:
| PARAMETER | VALUE | |
|---|---|---|
| 0 | Param1 | 1.2 |
| 1 | Param2 | 5.0 |
| 2 | Param3 | 9.3 |
| 3 | Param4 | 30 |
| 4 | Param5 | 1500 |
通过参数名称访问值的最佳方式是什么?例如我需要 Param4 的值,有什么办法可以说 read['Param'].value?
【问题讨论】:
我正在使用 panadas 读取一些数据,这是数据框:
| PARAMETER | VALUE | |
|---|---|---|
| 0 | Param1 | 1.2 |
| 1 | Param2 | 5.0 |
| 2 | Param3 | 9.3 |
| 3 | Param4 | 30 |
| 4 | Param5 | 1500 |
通过参数名称访问值的最佳方式是什么?例如我需要 Param4 的值,有什么办法可以说 read['Param'].value?
【问题讨论】:
我认为没有条件阅读的方法。
但是,您可以使用以下代码来完成。
df[df['PARAMETER'] == 'Param4']['VALUE']
【讨论】:
一种方法是使用loc,例如:
float(df.loc[df['PARAMETER']=='Param4']['VALUE']) # locate col PARAMETER and get VALUE
Out[81]: 30.0
# Or
df.loc[df['PARAMETER']=='Param4']['VALUE'].values
Out[94]: array([30.])
另一种方法是创建一个dict 并像这样访问它们:
# Using a dictionary
d = dict(zip(df.PARAMETER,df.VALUE))
d['Param4']
Out[82]: 30.0
d['Param3']
Out[90]: 9.3
【讨论】:
col_one_list = fil2['PARAMETER'].tolist()col_two_list = fil2['VALUE'].tolist()res = {col_one_list[i]: col_two_list[i] for i in range(len(col_two_list))}print(res['Param4'])