Python 如何减少数据帧中的行数,在给定列中聚合相同的值?
对于这个问题,我将使用本文提供的数据。请按如下方式加载:Python 如何减少数据帧中的行数,在给定列中聚合相同的值?,python,pandas,aggregate,Python,Pandas,Aggregate,对于这个问题,我将使用本文提供的数据。请按如下方式加载: import pandas as pd df = pd.read_csv('wierda_data.txt', sep=None) # For simplicity, let's only consider one subject and one lag it = iter(ex.groupby(('Subject', 'Lag'))) _, df = it.next() 如果我们查看df.head(10)我们有以下布局: 我想执
import pandas as pd
df = pd.read_csv('wierda_data.txt', sep=None)
# For simplicity, let's only consider one subject and one lag
it = iter(ex.groupby(('Subject', 'Lag')))
_, df = it.next()
如果我们查看df.head(10)
我们有以下布局:
我想执行一个reduce类型的操作,以便在time
列中对于给定的值只有一行,对过程中size
和sizeNB
的值取平均值(将删除T1acc
和T2acc
的零值,因此无需考虑这些)
为了清楚起见,我想通过平均size
和sizeNB
的值,将第79-83行折叠成一行。根据相应的time
值标识其余行
因此,我的问题有两个:
提前非常感谢 通过使用
groupby
和mean
方法,这很容易实现,如下所示
只需groupby
您的time
列,然后对每个元素应用mean
方法。见文件
如果希望删除不必要的数据,则可以遍历列并从分组的
对象中删除它们,如下所示:
for column in ['Subject', 'Lag', 'T1acc', 'T2acc', 'NumberOfTargets']:
del grouped[column]
@啊,我应该自己能弄明白的!看起来我想把简单的事情变成复杂的事情!谢谢!=)
for column in ['Subject', 'Lag', 'T1acc', 'T2acc', 'NumberOfTargets']:
del grouped[column]