我有一些来自计数实验的csv数据,其中给了我一个测量时间以及该时间与上一个测量时间之间的计数数量。由于某种原因,每当我有计数(有时我什么都没有)时,该行就会重复与计数相同的次数。这是一个基本示例:
time counts
t1 0
t2 1
t3 0
t4 3
t4 3
t4 3
t5 0
所以t4重复了3次,因为我有3个与之相关的计数,并且这种情况发生在任何数量的计数上(除了零,在这种情况下,该行仅出现一次)。在我的情况下,还有更多的列,但仅这2个很重要。有没有一种快速的方法来删除这些多余的行并使每个计数仅出现一次,即:
time counts
t1 0
t2 1
t3 0
t4 3
t5 0
谢谢!
答案 0 :(得分:1)
使用重复副本:
import numpy as np
import pandas as pd
df = pd.DataFrame({'time': ['t1', 't2', 't3', 't4', 't4', 't4', 't5'],
'counts': [0, 1, 0, 3, 3, 3, 0]})
print(df)
print(df.drop_duplicates())
time counts
0 t1 0
1 t2 1
2 t3 0
3 t4 3
6 t5 0
答案 1 :(得分:0)
删除重复项只能通过占据特定列的方式进行。
df = df.drop_duplicates('Column',keep='first')
这将删除重复项,并且仅保留第一个值。
df = df.drop_duplicates('time',keep='first')
您还可以按升序或降序排列数据,以提高准确性。
df = df.sort_values(by=['Counts'], ascending=[False],na_position='last')
df = df.drop_duplicates('time',keep='first')