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

 

你可能感兴趣的:(python)