网站更新内容:请访问: https://bigdata.ministep.cn/

pandas将一行数据展开成多行的需求

在使用 pandas 进行数据分析的过程中,我们常常会遇到将一行数据展开成多行的需求,多么希望能有一个类似于 hive sql 中的 explode 函数。这个函数如下:
原数据集如下:

image

希望转化后的结果如下:

image

数据集如下:

data = [{'date_range': '20200520~20200618',
  'id': '257f',
  'app_name': '[微信","闲鱼","支付宝"]"'},
 {'date_range': '20200520~20200618',
  'id': '933a',
  'app_name': '[抖音短视频","快手极速版","作业帮"]"'},
 {'date_range': '20200520~20200618',
  'id': '73c9',
  'app_name': '[极速清理管家","王者荣耀"]"'},
 {'date_range': '20200520~20200618',
  'id': '1054',
  'app_name': '[微信","讯飞输入法","应用宝"]"'}]

df_v1 = pd.DataFrame(data)

转化结果如下:

df_v1 = pd.DataFrame(data)
df_v1.head()
df_v1['app_name_str'] = df_v1['app_name'].str.replace('\[|\]','', regex=True)
df_v1['app_name_str'] = df_v1['app_name'].str.replace('"|"','', regex=True)
df_v1['app_name_list'] = df_v1['app_name_str'].str.split(',')
df_v1.head()
df_v2 = df_v1.explode('app_name_list')
df_v2.head()

结果所示:
image


posted @ 2022-02-16 15:06  ministep88  阅读(192)  评论(0)    收藏  举报
网站更新内容:请访问:https://bigdata.ministep.cn/