我试图从一行中找到列索引,但不断出现错误,我不熟悉使用pandas

2024-06-17 09:13:43 发布

您现在位置:Python中文网/ 问答频道 /正文

解决

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是列号。该位置的数据将通过一些计算输入


Tags: csv数据dfreaddataasfirstnamepd
2条回答

您需要列的索引吗

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

我想你要找的是

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

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

编辑:我误解了你的问题,但希望这些建议仍然对你有帮助

相关问题 更多 >