python - 与文件名匹配的索引
问题描述
我有一个关于索引和值选择的问题。我有一个主要的 python 脚本,我在其中循环大量文件。然后将每个文件用作我的代码中的输入以执行一些操作。对于这些操作,我还需要每个输入的面积值 (x,y)。我为此创建了一个数据框,其中输入名称(gauge_id)作为索引,列中包含区域的值。我想为其对应的 gauge_id 选择 Area 的值。Gauge_id 与输入 x 同名。如何选择df2的gauge_id作为输入x的对应名称?
例子:
输入 x= 1001 然后我希望 df2 的值与索引 gauge_id 1001 匹配。
def dataprocessing(x,y):
A = pd.read_csv('camels_br_location.txt', delimiter=' ', header=None, skiprows=1, names=['gauge_id','gauge_name','gauge_region','gauge_lat','gauge_lon','area_ana','area_gsim','area_gsim_quality'])
A.columns = A.columns.str.replace(' ', ',')
A.index = A['gauge_id']
df2 = pd.DataFrame()
df2['Area'] = A['area_gsim']
Area = *10**3 #Area catchment in m2
print(Area)
解决方案
def dataprocessing(x):
A = pd.read_csv(
'camels_br_location.txt',
delimiter=' ',
header=None,
skiprows=1,
names=['gauge_id','gauge_name','gauge_region','gauge_lat','gauge_lon','area_ana','area_gsim','area_gsim_quality'],
index_col='gauge_id')
return A.loc[x, :]['area_gsim']*10**3
结果是:
x = 10100000
print(dataprocessing(x)) # return 883138500.0
推荐阅读
- c# - EntityFramework:是否可以将两个不同的列映射到遵循相同实践的相同实体/模型?
- javascript - 如何编写此 javascript 代码清洁器?
- mongodb - 查询期间的 DocumentTooLarge
- html - 在 css 中管理文本和图像
- java - HashSet 在修改包含对象的字段时变得不可靠。为什么/何时或如何使用 HashSet?
- php - 通过 CakePHP 3 ORM 查询动态添加列到查询结果
- django - Django 验证器 TypeError int() 参数必须是字符串、类似字节的对象或数字,而不是 'DeferredAttribute
- maven - Maven编译spring-boot空项目失败
- c++ - gdb 'call' 返回负值
- c++ - 是否可以在 C++03 中实现类似“覆盖”的功能