pandas 格式转换

# %%

import numpy as np

import pandas as pd

# %%

# 1.一列转为多列,str.split,已确定拆分结果的列数

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet1')

tb = df['收货地址'].str.split(' ', expand=True)

df['省份'] = tb[0]

df['城市'] = tb[1]

# pd.Series.str.split()

df

# %%

# 2.一列转为多列,不确定拆分结果的列数,split和join方法

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet2')

df_split = df['商品信息'].str.split(',', expand=True)

df_re = df.join(df_split)

df_re

# %%

# 3.对元素/列表形式的字段拆分

df = pd.DataFrame({

    '订单ID': [1, 2, 3, 4],

    '数量和价格': [[1, 2],

              [3, 4],

              [5, 6],

              [7, 8]]})

df[['数量', '价格']] = df['数量和价格'].apply(pd.Series)

df

# %%

# 4.行列转换

# %%

# 4.1列转为行,stack,将除索引列之外的字段转为最内层的行索引

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet3')

df = df.set_index('门店')

df = df.stack().reset_index()

df.columns = ['门店', '产品', '销量']

df

# %%

# 4.1行转为列,unstack,将最内层的行索引转为字段

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet4')

df = df.set_index(['门店', '品类'])

df = df.unstack()

df

# %%

# 转为常规DataFrame

df.columns = df.columns.droplevel(0)

df.columns.names = [None]

df = df.reset_index()

df

# %%

# 4.3行转为列,pivot,透视列,没有聚合功能

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet5')

df = df.pivot(index='门店', columns='品类', values='销量')

df.columns.names = [None]

df.reset_index()

# %%

# 4.4列转为行,melt,宽表转为长表

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet3')

df.melt(

    # 位置保持不变的字段

    id_vars='门店',

    # 转为行的字段

    value_vars=['手机销量', '电脑销量'],

    # 转为行后新字段的别名

    var_name='品类',

    # 值列的别名

    value_name='销量')

# %%

# 5.DataFrame转为字典

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet6')

# 先设置索引,作为字典的key

df = df.set_index('用户ID')

dct = df.to_dict()['用户姓名']

dct

# %%

# 6.DataFrame转为列表

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet6')

lst = df.values.tolist()

lst

# %%

# 7.DataFrame转为元组

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet6')

# 元组

# tuple()

tup = [tuple(x) for x in df.values]

# 生成器

# (tuple(x) for x in df.values)

# %%

# 8.DataFrame转HTML

df = pd.read_excel('./data/demo_05.xlsx', sheet_name='Sheet6')

df.to_html('网页.html', index=False)

# %%




 

你可能感兴趣的:(python,机器学习,数据分析)