假设这是我的原始数据:
data = {'library_id': ['A123', 'A456','B123', 'A123', 'A123', 'B123', 'A456'],
'school': ['A1','A', 'B', 'A', 'A2', 'B', 'A'],
'charge ($)': [5.0, 10.0, 3.0, 2.5, 1.0, 4.0, 2.5],
'check_in_month': [12, 3, 4, 5, 4, 9, 5]}
library =pd.DataFrame(data)
我正试图得到这样的结果:
这是我得到结果的代码:
df = pd.DataFrame(library.library_id.value_counts())
school_list = []
for i in df.index:
school_list.append(library[library.library_id == i].school.unique())
df['school'] = school_list
df
我的问题是如何避免使用列表(即school_list=[])来获得相同的结果。因为当我有大数据时,使用列表将数据附加到数据帧非常耗时。还有其他更快的方法吗
您可以尝试:
得到
我们按
library_id
分组,然后agg
在组size
和unique
条目上对其进行重新分组如果不希望
library_id
出现在索引顶部,可以写入result.index.name = None
,因为它是result
索引的名称相关问题 更多 >
编程相关推荐