美文网首页
python数据分析10:数据转换

python数据分析10:数据转换

作者: 0清婉0 | 来源:发表于2021-01-14 20:07 被阅读0次

数据转换:一般包括一列数据转换为多列数据,行列转换,DataFrame转换为字典、列表和元组等

【一列数据转换为多列数据】

split方法

Series.str.split(pat=None, n=-1, expand=False)

pat 字符串、符号或正则表达式,表示字符串分割的依据,默认以空格分割字符串

n 整型,分割次数,默认值是-1,0或-1都将返回所有拆分的字符串

expand 布尔型,分割后的结果是否转换为DataFrame,默认值是False

返回值 系列、索引、DataFrame或多重索引

# 数据是多种商品组合,称为复合

import pandas as pd

pd.set_option('display.max_columns', 500)

pd.set_option('display.width', 1000)

pd.set_option('display.unicode.east_asian_width', True)

# 导入指定数据  '买家会员名', '收货地址'

df = pd.read_excel('mrbooks.xls', usecols=['买家会员名', '收货地址'])

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

df['省'] = series[0]

df['市'] = series[1]

df['区'] = series[2]

print(df.head())

  买家会员名                                     收货地址                                                      省      市      区

0    mr00001                             重庆 重庆市 南岸区                                           重庆  重庆市  南岸区

1    mr00003      江苏省 苏州市 吴江区 吴江经济技术开发区亨通路                   江苏省  苏州市  吴江区

2    mr00004  江苏省 苏州市 园区 苏州市工业园区唯亭镇阳澄湖......                 江苏省  苏州市  园区

3    mr00002  重庆 重庆市 南岸区 长生桥镇茶园新区长电路11112号                 重庆    重庆市  南岸区

4    mr00005          安徽省 滁州市 明光市 三界镇中心街10001号                       安徽省  滁州市  明光市

【join方法与split方法结合】

import pandas as pd

pd.set_option('display.max_columns', 500)

pd.set_option('display.width', 1000)

pd.set_option('display.unicode.east_asian_width', True)

# 导入指定数据  '买家会员名', '收货地址'

df = pd.read_excel('mrbooks.xls',usecols=['买家会员名','宝贝标题'])

df = df.join(df['宝贝标题'].str.split(',', expand=True))

print(df)

    买家会员名      宝贝标题                                                                                0

0      mr00001    PHP程序员开发资源库                                                              PHP程序员开发资源库                             

1      mr00003    个人版编程词典加点                                                              个人版编程词典加点                             

2      mr00004    邮费                                                                            邮费                                                        

..        ...                                                ...                                                                              ...                             

193    mr00232    明日科技 Java编程词典个人版                                                      明日科技 Java编程词典个人版                             

【对元组数据进行分割】

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)

# 导入指定数据  '买家会员名', '收货地址'

df = pd.DataFrame({'a':[1,2,3,4,5],'b':[(1,2),(3,4),(5,6),(7,8),(9,10)]})

print(df)

  a        b

0  1  (1, 2)

1  2  (3, 4)

2  3  (5, 6)

3  4  (7, 8)

4  5  (9, 10)

df[['b1','b2']] = df['b'].apply(pd.Series)

df = df.join(df['b'].apply(pd.Series))

print(df)

  a        b  b1  b2

0  1  (1, 2)  1  2

1  2  (3, 4)  3  4

2  3  (5, 6)  5  6

3  4  (7, 8)  7  8

4  5  (9, 10)  9  10

相关文章

网友评论

      本文标题:python数据分析10:数据转换

      本文链接:https://www.haomeiwen.com/subject/qrcbaktx.html