我有一个包含不同子区域的数据框。我想要的只是能够将它们组合在一起并在另一个数据框中对它们进行计数。这是我名为 data 的数据框的样子:
Area
0 TEX001
1 TEX002
2 TEX003
3 ARZ004
4 ARZ015
5 MSS034
6 NWY001
7 NWY003
我已经尝试使用循环来检索我需要的信息,但我只得到很多 bool 值。
这是我尝试过的:
u_area=list(data['U_area'].unique())
listo=[]
for i in u_area:
d={}
d['Sector']= i
d['Sec_name]=list(data['Area'].str.startswith(i))
print (x)
d['Total']= len(d['sites'])
listo.append(d)
我希望有一个包含许多字典的列表,如下所示,这样我就可以用 pandas 对我的列表进行数据框处理,使其具有如下内容:
Sector Sec_name Total
TEX TEX001,TEX002,TEX003, 3
ARZ ARZ004, ARZ035 2
MSS MSS034 1
拥有这些 bool 值我做错了什么??
最佳答案
IIUC 与 agg
和 groupby
yourdf=df.groupby(df['Area'].str[:3])['Area'].agg([','.join,'count'])
yourdf.columns=['Sec_name','Total']
yourdf# if need reset_index adding yourdf.reset_index(inplace=True)
Out[17]:
Sec_name Total
Area
ARZ ARZ004,ARZ015 2
MSS MSS034 1
NWY NWY001,NWY003 2
TEX TEX001,TEX002,TEX003 3
关于python - 工程数据结构/信息检索与存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174324/