当前位置: 代码迷 >> 综合 >> pandas_df.groupby()
  详细解决方案

pandas_df.groupby()

热度:65   发布时间:2024-01-12 18:12:43.0
import pandas as pd
df = pd.DataFrame(
{"text_id":[0,0,1,1],"question":['唐六典中说式占有哪三式?', "六壬著作有哪些?",  '汉的意思是什么?', "利玛窦何时来华?"],"A":["雷公式,太一式,六壬式", "《壬归》校译释论", '汉子', "清朝"],"B":["太史,太师,太公", "《唐六典》", "银河", "明朝"],"answer":[1, 1, 2, 2]
})
  text_id question A B answer
0 0 唐六典中说式占有哪三式? 雷公式,太一式,六壬式 太史,太师,太公 1
1 0 六壬著作有哪些? 《壬归》校译释论 《唐六典》 1
2 1 汉的意思是什么? 汉子 银河 2
3 1 利玛窦何时来华? 清朝 明朝 2

 

 

 

 

 

 

# 根据text_id字段分组
group = df.groupby("text_id")
# 取组值为0的这一组
group.get_group(0)
  text_id question A B answer
0 0 唐六典中说式占有哪三式? 雷公式,太一式,六壬式 太史,太师,太公 1
1 0 六壬著作有哪些? 《壬归》校译释论 《唐六典》 1

 

 

 

 

group.groups
{0: Int64Index([0, 1], dtype='int64'), 1: Int64Index([2, 3], dtype='int64')}

 

group.size()
text_id
0    2
1    2
dtype: int64
# 2
len(group)
# n是分组字段的值
for n,g in group:print(n)
0
1

 

# 获得一份副本,不然下面的操作容易报警告
# 对该副本的操作不会影响原对象
df_c = df.copy()# 更改某个字段值的表示1
df_c['answer'] = df_c['answer'].replace({1:'A', 2:'B'})# 更改某个字段值的表示2
df_c['answer'] = df_c['answer'].map({1:'A', 2:'B'})
  text_id question A B answer
0 0 唐六典中说式占有哪三式? 雷公式,太一式,六壬式 太史,太师,太公 A
1 0 六壬著作有哪些? 《壬归》校译释论 《唐六典》 A
2 1 汉的意思是什么? 汉子 银河 B
3 1 利玛窦何时来华? 清朝 明朝 B

 

 

 

 

 

 

参考:------链接--------