使用 groupby() 简化 Pandas 数据处理

以下代码展示了一种使用 Pandas 的 groupby() 函数来简化数据处理的示例,可以有效提高代码的效率和可读性。

原始代码:

df = pd.read_csv("./2023_2_20No2/2023_2_20_19.csv",encoding = 'utf-8')
df = df.iloc[:,1:18]
df_tumor = df[df['name'] == 'tumor']
df_peritumor = df[df['name'] == 'peritumor']  
df['name'] = df['name'] + df['property']
df_tumor_A = df_tumor[df_tumor['property'] == 'A']
df_tumor_B = df_tumor[df_tumor['property'] == 'B']
df_tumor_C = df_tumor[df_tumor['property'] == 'C']
df_tumor_D = df_tumor[df_tumor['property'] == 'D']
df_tumor_E = df_tumor[df_tumor['property'] == 'E']
df_tumor_F = df_tumor[df_tumor['property'] == 'F']
df_tumor_G = df_tumor[df_tumor['property'] == 'G']
df_tumor_H = df_tumor[df_tumor['property'] == 'H']
df_peritumor_A = df_peritumor[df_peritumor['property'] == 'A']
df_peritumor_B = df_peritumor[df_peritumor['property'] == 'B']
df_peritumor_C = df_peritumor[df_peritumor['property'] == 'C']
df_peritumor_D = df_peritumor[df_peritumor['property'] == 'D']
df_peritumor_E = df_peritumor[df_peritumor['property'] == 'E']
df_peritumor_F = df_peritumor[df_peritumor['property'] == 'F']
df_peritumor_G = df_peritumor[df_peritumor['property'] == 'G']
df_peritumor_H = df_peritumor[df_peritumor['property'] == 'H']

简化后的代码:

df = pd.read_csv("./2023_2_20No2/2023_2_20_19.csv",encoding = 'utf-8')
df = df.iloc[:,1:18]
df['name'] = df['name'] + df['property']
df_tumor = df[df['name'].str.contains('tumor')]
df_peritumor = df[df['name'].str.contains('peritumor')]

df_tumor_groups = df_tumor.groupby('property')
df_peritumor_groups = df_peritumor.groupby('property')

df_tumor_A = df_tumor_groups.get_group('A')
df_tumor_B = df_tumor_groups.get_group('B')
df_tumor_C = df_tumor_groups.get_group('C')
df_tumor_D = df_tumor_groups.get_group('D')
df_tumor_E = df_tumor_groups.get_group('E')
df_tumor_F = df_tumor_groups.get_group('F')
df_tumor_G = df_tumor_groups.get_group('G')
df_tumor_H = df_tumor_groups.get_group('H')

df_peritumor_A = df_peritumor_groups.get_group('A')
df_peritumor_B = df_peritumor_groups.get_group('B')
df_peritumor_C = df_peritumor_groups.get_group('C')
df_peritumor_D = df_peritumor_groups.get_group('D')
df_peritumor_E = df_peritumor_groups.get_group('E')
df_peritumor_F = df_peritumor_groups.get_group('F')
df_peritumor_G = df_peritumor_groups.get_group('G')
df_peritumor_H = df_peritumor_groups.get_group('H')

解释:

  1. groupby() 函数:将 df_tumordf_peritumor 数据集分别根据 'property' 列进行分组,并将分组后的结果分别存储到 df_tumor_groupsdf_peritumor_groups 中。
  2. get_group() 函数:从 df_tumor_groupsdf_peritumor_groups 中分别获取 'A', 'B', ... , 'H' 组的数据,并存储到相应的变量中。

简化后的代码具有以下优势:

  • 可读性提高: 代码结构更加清晰,易于理解。
  • 代码量减少: 避免了重复的筛选操作,代码更加简洁。
  • 效率提升: groupby() 函数可以更有效地处理分组操作。

总结:

groupby() 函数是 Pandas 中强大的数据处理工具,可以帮助你更高效地处理数据,并使你的代码更易于阅读和维护。

Pandas 数据处理优化:使用 groupby() 简化代码

原文地址: https://www.cveoy.top/t/topic/kjej 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录