首页 > 解决方案 > Python pandas 数据框 - 尝试从 read_csv 访问/打印某些字段会导致类型错误 - 如何修复?

问题描述

每当我尝试对数据框中的变量运行简单的打印操作时,它都会显示以下错误:

TypeError:“str”对象不能解释为整数

在处理上述异常的过程中,又出现了一个异常:

接着:

键错误:'值'

我知道这个字段存在于我的数据框中,因为我已经打印了它的结果

这是我的代码:

import pandas as pd 

iColumns = 7

szTransactionFile = 'Exports/example03.csv'

df = pd.read_csv(szTransactionFile, index_col=None, skiprows=1, usecols=range(iColumns), escapechar='\'', lineterminator='\n')
df.drop(index=0, inplace=True)
df.rename(columns={list(df)[6]: 'Account Number'}, inplace=True)

for index, row in df.iterrows():
     print("Value: " + row['Value'])

这些是csv的内容:


Date, Type, Description, Value, Balance, Account Name, Account Number
,,,,,,
05/08/2020,POS,"1234 03AUG20 , PAY *NAME, 2135655",-20,28.4,bobsley bobbington,1234
04/08/2020,POS,"1234 03AUG20 , WWW.AMAZON.COM, 123 123 132 42 GG",-15.99,48.4,bobsley bobbington,1234
03/08/2020,POS,"1234 29JUL20 C , STORE, CHINA GG",-3.3,64.39,bobsley bobbington,1234
03/08/2020,POS,"1234 24JUL20 C , IZ *KING , NORWAY GG",-5.3,67.69,bobsley bobbington,1234
30/07/2020,D/D,'PAYPAL PAYMENT,-1.99,72.99,bobsley bobbington,1234

请问有人可以帮我解决这个问题吗?我很困惑,因为我可以在迭代器中访问 row['Date'] 和 row['Account Number],但没有其他字段。

标签: pythonpandasdataframecsv

解决方案


您在列名中有前导空格

data = '''Date, Type, Description, Value, Balance, Account Name, Account Number,,
05/08/2020,POS,"1234 03AUG20 , PAY *NAME, 2135655",-20,28.4,bobsley bobbington,1234
04/08/2020,POS,"1234 03AUG20 , WWW.AMAZON.COM, 123 123 132 42 GG",-15.99,48.4,bobsley bobbington,1234
03/08/2020,POS,"1234 29JUL20 C , STORE, CHINA GG",-3.3,64.39,bobsley bobbington,1234
03/08/2020,POS,"1234 24JUL20 C , IZ *KING , NORWAY GG",-5.3,67.69,bobsley bobbington,1234
30/07/2020,D/D,'PAYPAL PAYMENT,-1.99,72.99,bobsley bobbington,1234'''
a = [[i for i in l.split(",")] for l in data.split("\n")]
df = pd.DataFrame(a[1:], columns=a[0])
df.loc[:, ['Date', ' Type', ' Description', ' Value', ' Balance', ' Account Name',
       ' Account Number', '', '']]
df.columns = [c.strip() for c in df.columns]
df.loc[:, ['Date', 'Type', 'Description', 'Value', 'Balance', 'Account Name',
       'Account Number', '', '']]

推荐阅读