我试图运行一个适用于我的数据集的功能(差不多)。事实是,当我使用我的整个数据框时,我的功能不起作用。 数据框的标题如下:
<div class="modal">
<div class="container">
<div class="row">
<div class="col-sm-3">
<div class="row">
<div class="col-sm-12">
<div class="panel">
</div><!--end panel-->
</div><!--end col-->
</div><!--end row-->
</div><!--end col-->
<!--include column here with row and column children and panel-->
<!--include column here with row and column children and panel-->
</div><!--end row-->
</div><!--end container-->
</div><!--end modal-->
如何分割或拆分我的DataFrame以告诉python运行读取个人ID集的函数?然后转到下一个等等
更新:我的功能有以下参数:
ID POSITION_X POSITION_Y POSITION_T
0 0 116.231 114.277 0
1 0 116.131 114.376 1
2 0 116.189 114.364 2
3 1 116.150 114.398 0
4 1 116.271 114.375 1
5 2 116.157 114.296 0
6 2 116.220 114.384 1
7 2 116.221 114.280 2
8 2 116.277 114.489 3
9 3 116.172 114.237 0
并且该函数调用了一些参数并在相应的列中使用[&#39; POSITION_X&#39;,&#39; POSITION_Y&#39;],如下所示:
N = df1.groupby('ID').size()
max_time = N*(0.1)
frames = max_time/N
t_step=frames.item()
data = pd.DataFrame({'N':N,'max_time':max_time,'frames':frames})
print(data)
t=np.linspace(0.1, max_time.item(), N)
如果我在个人ID数据集上运行该功能,它的效果非常好!!但是如何指示为每组ID重复该功能?
答案 0 :(得分:0)
您可以使用pandas.groupby
和apply()
在各个群组上运行以下功能:
<强>代码:强>
def apply_to_group(group):
return (group['ID'] * 100) + group['POSITION_T']
df.groupby(['ID']).apply(apply_to_group)
测试代码:
import pandas as pd
df = pd.read_fwf(StringIO(u"""
ID POSITION_X POSITION_Y POSITION_T
0 116.231 114.277 0
0 116.131 114.376 1
0 116.189 114.364 2
1 116.150 114.398 0
1 116.271 114.375 1
2 116.157 114.296 0
2 116.220 114.384 1
2 116.221 114.280 2
2 116.277 114.489 3
3 116.172 114.237 0"""),
header=1)
def apply_to_group(group):
return (group['ID'] * 100) + group['POSITION_T']
print(df)
print(df.groupby(['ID']).apply(apply_to_group))
<强>结果:强>
ID POSITION_X POSITION_Y POSITION_T
0 0 116.231 114.277 0
1 0 116.131 114.376 1
2 0 116.189 114.364 2
3 1 116.150 114.398 0
4 1 116.271 114.375 1
5 2 116.157 114.296 0
6 2 116.220 114.384 1
7 2 116.221 114.280 2
8 2 116.277 114.489 3
9 3 116.172 114.237 0
ID
0 0 0
1 1
2 2
1 3 100
4 101
2 5 200
6 201
7 202
8 203
3 9 300
dtype: int64