[我正在尝试从一行中定位列索引,但不断出错,我是使用熊猫的新手

问题描述 投票:0回答:2

已解决

import pandas as pd

firstNameDB = str(firstNameInput())
surNameDB = str(surNameInput())
with open('userdb.csv', mode='r', encoding='utf-8') as f:
    if (firstNameDB and surNameDB) in f.read():
        print('You are a pre-existing user on the database, '
              'let me load your details for you')
        data = pd.read_csv('userdb.csv')
        df = pd.DataFrame(data, columns=['Firstname', 'Surname', 'Hours'])
        print(df)
        dfRow = df[df['Firstname'].str.match(firstNameDB)]
        print(dfRow)

CSV只是基本的名字,姓氏,数字文件。我的代码当前检查用户是否已经在数据库中。我正在尝试编码一种方法来定位Hours列的索引,以便可以在(x,y)处调用数据,其中x是该行的索引整数,而y是列号。然后将通过一些计算来获取此位置的数据

python pandas
2个回答
2
投票

您需要该列的索引吗?

>>> df.columns.tolist().index('Hours')
2

1
投票

我认为您正在寻找的是

dfRow = df[df['Firstname'] == firstNameDB and df['Surname'] == surNameDB]

我不会执行“ with open”或“ if(firstNameDB和surNameDB)部分。只需将csv读入数据框,并使用上面的行找到匹配的行(或多行)。

编辑:我误解了您的问题,但希望这些建议对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.