【发布时间】:2018-09-25 14:06:32
【问题描述】:
我想删除列B 和C 中的值在四舍五入到小数点后两位相等的重复行
import pandas as pd
df = pd.DataFrame({"A":["f1", "f2", "f3", "f4"], "B":[1.2579,1.2586,1.7223,1], "C":[8.2579,8.2586,12.7223,14.0]})
A B C
0 f1 1.2579 8.2579
1 f2 1.2586 8.2586
2 f3 1.7223 12.7223
3 f4 1.0000 14.0000
这里,行0 和1 在四舍五入后具有相同的值。而不是创建列 B_round 和 C_round 来删除这样的重复项
df['B_round'] = df['B'].values.round(2)
df['C_round'] = df['C'].values.round(2)
df = df.drop_duplicates(subset=['B_round', 'C_round'], keep='first')
我必须再次删除列
df = df.drop(['B_round', 'C_round'], axis=1)
A B C
0 f1 1.2579 8.2579
2 f3 1.7223 12.7223
3 f4 1.0000 14.0000
因为我的真实数据很大。有没有办法在不创建新列的情况下删除它们?
【问题讨论】:
标签: python python-2.7 pandas