Python-dataframe的对应列求差值

需求:求两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

 

  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值