数据处理

 

这几天没有熬夜!啊,我黑眼圈哩!!!!

 

 

原始数据:data1,data2

 

data1:  每列代表:user, poi ,rating

data2:  每列代表:poi, jingdu ,weidu

 

目标是把data2中的经纬度加入到data1中

最终结果:每列代表:user,poi,rating,jingdu,weidu

 

数据处理过程:

第一步:

import pandas as pd


df_1=pd.read_csv(u'data1.txt',names=['user','poi','rating'],sep='\t')#将data1.txt导入数据
print('原始数据data1数据的前5行:')
print(df_1.head())#输出data1.txt数据的前5行
df_1_1=df_1.set_index('poi')#将poi作为每行的索引
print('原始数据data1数据处理后的前5行:')
print(df_1_1.head())#输出数据处理后的前5行
df_2=pd.read_csv(u'data2.txt',names=['poi','jingdu','weidu'],sep='\t')#将data2.txt导入数据
print('原始数据data2数据的前5行:')
print(df_2.head())#输出data2.txt数据的前5行
df_2_1=df_2.set_index('poi')#将poi作为每行的索引
print('原始数据data2数据处理后的前5行:')
print(df_2_1.head())#输出数据处理后的前5行


result = pd.concat([df_1_1,df_2_1],axis=1,join_axes=[df_1_1.index])#将两个文件进行合并,并以第一个文件为基础
print('合并数据数据data1和data2数据处理后的前5行:')
print(result.head())#输出数据处理后的前5行
result.to_csv('data_new')#导出数据到文件data_new


输出结果:

原始数据data1数据的前5行:
   user  poi  rating
0     1  114       1
1     1  136       1
2     1  147       2
3     1  152       1
4     1  157       1
原始数据data1数据处理后的前5行:
     user  rating
poi              
114     1       1
136     1       1
147     1       2
152     1       1
157     1       1
原始数据data2数据的前5行:
   poi     jingdu      weidu
0    1  40.733596 -74.003139
1    2  40.756377 -73.967653
2    3  40.739685 -74.006020
3    4  40.718363 -73.990817
4    5  40.722842 -73.994116
原始数据data2数据处理后的前5行:
        jingdu      weidu
poi                      
1    40.733596 -74.003139
2    40.756377 -73.967653
3    40.739685 -74.006020
4    40.718363 -73.990817
5    40.722842 -73.994116
合并数据数据data1和data2数据处理后的前5行:
     user  rating     jingdu      weidu
poi                                    
114     1       1  40.752505 -73.977580
136     1       1  40.745548 -73.947236
147     1       2  40.718151 -73.959967
152     1       1  40.734225 -73.993703
157     1       1  40.765023 -73.980196

Process finished with exit code 0

保存的文件data_new为:

 

 

data_new:每列代表含义:poi,user,rating,jingdu,weidu,分隔符为“,”

第二步:

交换一下poi 和 user 两列的顺序,并导入数据到data_new_1:

import pandas as pd
data_new=pd.read_csv(u'data_new',sep=',')#将data_new导入数据
print('数据data_new 数据的前5行:')
print(data_new.head())
data_new_1=data_new.set_index('user')#交换poi和user两列的顺序
print('数据data_new_1 数据的前5行:')
print(data_new_1.head())
data_new_1.to_csv('data_new_1')#导出数据到文件data_new_1

输出结果:
数据data_new 数据的前5行:
   poi  user  rating     jingdu      weidu
0  114     1       1  40.752505 -73.977580
1  136     1       1  40.745548 -73.947236
2  147     1       2  40.718151 -73.959967
3  152     1       1  40.734225 -73.993703
4  157     1       1  40.765023 -73.980196
数据data_new_1 数据的前5行:
      poi  rating     jingdu      weidu
user                                   
1     114       1  40.752505 -73.977580
1     136       1  40.745548 -73.947236
1     147       2  40.718151 -73.959967
1     152       1  40.734225 -73.993703
1     157       1  40.765023 -73.980196

Process finished with exit code 0

data_new_1文件展示:

 

data_new_1:每列代表含义:user,poi,rating,jingdu,weidu,分隔符为“,”

第三步(最后一步):

将data_new_1的user,poi,rating,jingdu,weidu去掉,分隔符为“,”转变为“\t”,并且保存为txt格式

用这个软件

然后删除user,poi,rating,jingdu,weidu,并保存为txt格式:

 

结束

参考链接:

PANDAS 数据合并与重塑(concat篇) - stevenkwong的博客 - CSDN博客  https://blog.csdn.net/stevenkwong/article/details/52528616

(1 条消息)pandas 如何在已有dataframe的基础上,指定它的某某列为索引? - 知乎  https://www.zhihu.com/question/52315524

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值