删除重复的 Pandas 和 SQLAlchemy
Drop duplicate Pandas and SQLAlchemy
我正在尝试为呼叫中心制作一个脚本,该呼叫中心希望能够将数百万条记录从 csv 文件上传到数据库,从上传中过滤掉所有重复的 phone 号码。为此,我使用 Pandas 和 SQLAlchemy
df = read_csv('test.csv')
rd = models.session.query(Test).all()
我知道 pandas 中有 drop_duplicates()
,但只能找到从同一数据框中删除重复项的示例。这是否适用于我的情况
更新:
这是我目前得到的,多亏了别人的帮助。
df = read_csv('phones.csv')
result_dict = [u.__dict__ for u in models.session.query(Dedupe).all()]
df['tel'] = df.index
rd = DataFrame.from_dict(result_dict)
print df[~df['tel'].isin(rd['tel'].unique())]
它仍在打印所有的 csv。即使有重复
我认为这说明了如何检查数据库中的 phone 数字。
In [59]: data = pd.DataFrame(range(10), columns=['number'])
In [60]: data
Out[60]:
number
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
In [61]: check = range(5)
In [62]: check
Out[62]: [0, 1, 2, 3, 4]
In [63]: data = data[~data['number'].isin(check)]
In [64]: data
Out[64]:
number
5 5
6 6
7 7
8 8
9 9
将 data 替换为您上传的 table 并且 check 需要是 phone 的查询列表来自您数据库的号码。
我正在尝试为呼叫中心制作一个脚本,该呼叫中心希望能够将数百万条记录从 csv 文件上传到数据库,从上传中过滤掉所有重复的 phone 号码。为此,我使用 Pandas 和 SQLAlchemy
df = read_csv('test.csv')
rd = models.session.query(Test).all()
我知道 pandas 中有 drop_duplicates()
,但只能找到从同一数据框中删除重复项的示例。这是否适用于我的情况
更新:
这是我目前得到的,多亏了别人的帮助。
df = read_csv('phones.csv')
result_dict = [u.__dict__ for u in models.session.query(Dedupe).all()]
df['tel'] = df.index
rd = DataFrame.from_dict(result_dict)
print df[~df['tel'].isin(rd['tel'].unique())]
它仍在打印所有的 csv。即使有重复
我认为这说明了如何检查数据库中的 phone 数字。
In [59]: data = pd.DataFrame(range(10), columns=['number'])
In [60]: data
Out[60]:
number
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
In [61]: check = range(5)
In [62]: check
Out[62]: [0, 1, 2, 3, 4]
In [63]: data = data[~data['number'].isin(check)]
In [64]: data
Out[64]:
number
5 5
6 6
7 7
8 8
9 9
将 data 替换为您上传的 table 并且 check 需要是 phone 的查询列表来自您数据库的号码。