![](https://i-blog.csdnimg.cn/blog_migrate/3b3124ff568066100af7e10872e1af8e.jpeg)
原始数据: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