2024-05-13 04:03:36 发布
网友
我编写了一个程序(用python3.6编写),试图将用户csv/excel的列映射到我拥有的xls模板上。到目前为止还不错,但这个过程的一部分必须是用户的数据处理,即联系人。例如,我想删除重复项、合并数据等。为此,我需要将每一行与所有其他行进行比较,这是非常昂贵的。我读到的每个用户的csv都有大约2000-4000行,但我希望它对更多行更有效。我把数据存储在pd数据帧. 在
有没有比暴力更有效的方法来做比较?在
谢谢
首先,你试过什么代码?在
但是要删除重复项,在熊猫身上很容易。示例如下:
import pandas as pd import numpy as np # Creating the Test DataFrame below - dfp = pd.DataFrame({'A' : [np.NaN,np.NaN,3,4,5,5,3,1,5,np.NaN], 'B' : [1,0,3,5,0,0,np.NaN,9,0,0], 'C' : ['AA1233445','A9875', 'rmacy','Idaho Rx','Ab123455','TV192837','RX','Ohio Drugs','RX12345','USA Pharma'], 'D' : [123456,123456,1234567,12345678,12345,12345,12345678,123456789,1234567,np.NaN], 'E' : ['Assign','Unassign','Assign','Ugly','Appreciate','Undo','Assign','Unicycle','Assign','Unicorn',]}) print(dfp) #Output Below A B C D E 0 NaN 1.0 AA1233445 123456.0 Assign 1 NaN 0.0 A9875 123456.0 Unassign 2 3.0 3.0 rmacy 1234567.0 Assign 3 4.0 5.0 Idaho Rx 12345678.0 Ugly 4 5.0 0.0 Ab123455 12345.0 Appreciate 5 5.0 0.0 TV192837 12345.0 Undo 6 3.0 NaN RX 12345678.0 Assign 7 1.0 9.0 Ohio Drugs 123456789.0 Unicycle 8 5.0 0.0 RX12345 1234567.0 Assign 9 NaN 0.0 USA Pharma NaN Unicorn # Remove all records with duplicated values in column a: # keep='first' keeps the first occurences. df2 = dfp[dfp.duplicated(['A'], keep='first')] #output A B C D E 1 NaN 0.0 A9875 123456.0 Unassign 5 5.0 0.0 TV192837 12345.0 Undo 6 3.0 NaN RX 12345678.0 Assign 8 5.0 0.0 RX12345 1234567.0 Assign 9 NaN 0.0 USA Pharma NaN Unicorn
如果您希望有一个新的数据帧,没有重复检查所有列,请使用波浪号。~运算符本质上是not equal to或{}运算符。官方文件here
~
not equal to
df2 = dfp[~dfp.duplicated(keep='first')]
首先,你试过什么代码?在
但是要删除重复项,在熊猫身上很容易。示例如下:
如果您希望有一个新的数据帧,没有重复检查所有列,请使用波浪号。}运算符。官方文件here
~
运算符本质上是not equal to
或{df2 = dfp[~dfp.duplicated(keep='first')]
相关问题 更多 >
编程相关推荐