Pandas数据处理
1 合并数据 concat combine_first merge
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
conn = create_engine('MysqL+pyMysqL://root:[email protected]:3306/chat?charset=utf8')
detail1 = pd.read_sql('meal_order_detail1',conn)
df1 = detail1.iloc[:,:10] ##取出detail1的前10列数据
df2 = detail1.iloc[:,10:] ##取出detail1的后9列数据
print('内连接合并后的数据框大小为:',pd.concat([df1,df2],axis=1,join='inner').shape)
print('外连接合并后的数据框大小为:',pd.concat([df1,df2],axis=1,join='outer').shape)
df3 = detail1.iloc[:1500,:] ##取出detail1前1500行数据
df4 = detail1.iloc[1500:,:] ##取出detail1的1500后的数据
@H_404_31@
print(‘内连接纵向合并后的数据框大小为:’,pd.concat([df3,df4],axis=1,join=‘inner’))
print(‘外连接纵向合并后的数据框大小为:’,pd.concat([df3,df4],axis=1,join=‘outer’))
print(‘append纵向堆叠后的数据框大小为:’,df3.append(df4).shape)
订单详情表和订单信息表都有订单编号
order = pd.read_csv(‘meal_order_info.csv’,sep=’,’,encoding=‘gb18030’) ##读取订单信息表
order[‘info_id’] = order[‘info_id’].astype(‘str’)##info_id转换为字符串格式,为合并做准备
#在订单详情表中为order_id,在订单信息表中为info_id
order_detail = pd.merge(detail1,order,left_on=‘order_id’,right_on = ‘info_id’)
print(‘订单详情表和订单信息表主键合并后的形状为:’,order_detail)
建立两个字典,除了ID外,别的特征互补
dict1 = {‘ID’:[1,2,3,4,5,6,7,8,9],
‘System’:[‘win10’,‘win10’,np.nan,‘win10’,
np.nan,np.nan,‘win7’,‘win7’,‘win8’],
‘cpu’:[‘i7’,‘i5’,np.nan,‘i7’,np.nan,np.nan,‘i5’,‘i5’,‘i3’]}
dict2 = {‘ID’:[1,2,3,4,5,6,7,8,9],
‘System’:[np.nan,np.nan,‘win7’,np.nan,
‘win8’,‘win7’,np.nan,np.nan,np.nan],
‘cpu’:[np.nan,np.nan,‘i3’,np.nan,‘i7’,
‘i5’,np.nan,np.nan,np.nan]}
转换两个字典为DataFrame
df5 = pd.DataFrame(dict1)
df6 = pd.DataFrame(dict2)
print(‘经过重叠合并后的数据为:\n’,df5.combine_first(df6))
import numpy as np
import pandas as pd
from sqlalchemy import create_engine
detail1 = pd.read_sql(‘meal_order_detail1’,conn)
detail2 = pd.read_sql(‘meal_order_detail2’,conn)
detail3 = pd.read_sql(‘meal_order_detail3’,conn)
纵向堆叠三张表
detail = detail1.append(detail2)
detail = detail.append(detail3)
#(2779, 19)
#(3647, 19)
#(3611, 19)
print(‘三张订单详情表合并后的形状为:’, detail.shape)
#(10037, 19)
order = pd.read_csv(‘meal_order_info.csv’,sep=’,’,encoding=‘gb18030’) ##读取订单信息表
user = pd.read_excel(‘users_info.xlsx’) ##读取用户信息表
数据类型转换,存储部分数据
order[‘info_id’] = order[‘info_id’].astype(‘str’)
order[‘emp_id’] = order[‘emp_id’].astype(‘str’)
user[‘USER_ID’] = user[‘USER_ID’].astype(‘str’)
data = pd.merge(detail,order,left_on=[‘order_id’,‘emp_id’],right_on = [‘info_id’,‘emp_id’])
data = pd.merge(data,user,left_on=‘emp_id’,right_on = ‘USER_ID’,how = ‘inner’)
print(‘三张表数据主键合并后的大小为:’,data.shape)
@H_404_31@
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。