需求:求两txt文件对应city‘数量’列的差值(airbnb_city1.txt - airbnb_city.txt)
数据展示:
import pandas as pd
# 如果没有列名 使用header=None names=['colums']指定
data_city = pd.read_csv('../datasets/airbnb_city.txt', header=0)
data_city1 = pd.read_csv('../datasets/airbnb_city1.txt', header=0)
print(data_city.head(10))
print(data_city1.head(10))
结果:
城市 数量
0 成都市 10673
1 杭州市 8310
2 广州市 8287
3 厦门市 7491
4 西安市 6027
5 深圳市 5876
6 朝阳区 5669
7 苏州市 5400
8 青岛市 5004
9 浦东新区 4642
城市 数量
0 上海市 16668
1 北京市 13443
2 成都市 10690
3 杭州市 8316
4 广州市 8281
5 厦门市 7502
6 重庆市 6670
7 香港特別行政區 6348
8 西安市 6025
9 深圳市 5872
代码:
data_merge = pd.merge(data_city1, data_city, on='城市', how='outer')
data_merge.fillna(0, inplace=True)
data_merge['差值'] = data_merge['数量_x'] - data_merge['数量_y']
data_merge[['数量_x', '数量_y', '差值']] = data_merge[['数量_x', '数量_y', '差值']].astype('int')
data_merge = data_merge.sort_values(by='差值', ascending=False)
data_merge.to_csv('../datasets/city.txt', index=False)
print(data_merge)
结果:
城市 数量_x 数量_y 差值
0 上海市 16668 0 16668
1 北京市 13443 0 13443
6 重庆市 6670 0 6670
7 香港特別行政區 6348 0 6348
23 天津市 1459 0 1459
48 澳門特別行政區 519 0 519
2 成都市 10690 10673 17
...
352 静安区 0 1838 -1838
351 东城区 0 2058 -2058
350 徐汇区 0 2393 -2393
349 黄浦区 0 2451 -2451
348 油尖旺區 0 2912 -2912
347 渝中区 0 3329 -3329
346 浦东新区 0 4642 -4642
345 朝阳区 0 5669 -5669