【发布时间】:2017-05-05 20:55:27
【问题描述】:
我有一个 pandas 数据框,我正在尝试将每个 acct_id_adj 号码添加到字典中,并通过注释搜索与该 ID 关联的所有电话号码。
Example of the dataframe
Index RowNum acct_id_adj NOTE_DT NOTE_TXT
0 1 A20000000113301111 5/2/2017 t/5042222222 lm w/ 3rd jn
1 2 A20000000038002222 5/4/2017 OB CallLeft Message
3 4 A20000000107303333 5/4/2017 8211116411 FOR $18490 MLF
import pandas
import re
PhNum = pandas.read_csv('C:/PhoneNumberSearch.csv')
PhNum = PhNum[PhNum['NOTE_TXT'].notnull()]
D = {}
#for i in xrange(PhNum.shape[0]):
for i in xrange(3):
ID = PhNum['acct_id_adj'][i]
Note = re.sub(r'\W+', ' ', PhNum['NOTE_TXT'][i])
print(Note)
Numbers = [int(s) for s in Note.split() if s.isdigit()]
print(Numbers)
for j in xrange(len(Numbers)):
if Numbers[j] > 1000000000:
D[ID] = Numbers[j]
print(D)
Out = pandas.DataFrame(D.items(), columns=['acct_id_adj', 'Phone_Number'])
但是,在第三行,我一直在 ID = PhNum['acct_id_adj'][i] 处遇到错误“KeyError: 2L”。找不到好的文档,无法弄清楚为什么问题会等到那时才出现。
感谢所有帮助,让我了解可能导致此错误的原因,或者我是否以错误的方式思考字典。
【问题讨论】:
-
请发布完整的回溯。
-
也许是因为它正在寻找
PhNum['acct_id_adj'][2],但它把这些数字中的第二个作为索引列中的内容?我注意到您的行编号为 0、1 和 3,所以这可能是问题所在。
标签: python dictionary keyerror