目录
一、数据转换
离散化与分箱
等长分箱
等量分箱
二、数据的连接
1.内联
2.左联
3.右联
4.外联
数据合并
df['字段'].map(dict)
map函数需要我们利用字典来将我们字段所对应的映射关系传入。
import pandas as pd
gdp_city=pd.read_csv('city.csv')
print(gdp_city)
city_prov=pd.read_csv('city_prov.csv')
#将我们所要匹配的数据用zip函数组合成一个字典
dict_city=dict(zip(city_prov['City'],city_prov['prov']))
#使用map函数将我们的省份字段中按照城市字段在dict_city中对饮的值填充
gdp_city['省份']=gdp_city['城市'].map(dict_city)
print(gdp_city)
我们离散化的方法主要是将我们的数据进行cut操作,分成不同的箱子,再给我们每个分箱打上不同的标签,再统计我们每个箱子中的数据元素个数
pd.cut(data,bins,labels)
data是我们的数据元素,bins是我们具体的分箱,labels为我们对每个分箱贴上的标签
bins=[0,2000,5000,10000,20000,40000]
group_names=['Small City','Middle City','mid-large City','Large City','Huge City']
a=pd.cut(gdp_city['2017年'],bins,labels=group_names)
gdp_city['size']=a
print(gdp_city)
如何将我们分箱的数据可视化?
x=pd.value_counts(a)
print(x)
import matplotlib.pyplot as plt
#将我们统计数值函数所返回的索引和具体的统计值作为我们图标的横纵坐标
plt.bar(pd.value_counts(a).index,
pd.value_counts(a).values,
width=0.8)
plt.show()
即我们每个箱子的长度是均分的
x=pd.cut(gdp_city['2017年'],bins=5,precision=2,labels=group_names)
x1=pd.value_counts(x)
print(x1)
import matplotlib.pyplot as plt
plt.bar(x1.index,
x1.values,
width=0.8)
plt.show()
即每个箱子中的量是等量的
x=pd.qcut(gdp_city['2017年'],5,precision=2,labels=group_names)
x1=pd.value_counts(x)
print(x1)
import matplotlib.pyplot as plt
plt.bar(x1.index,
x1.values,
width=0.8)
plt.show()
d.merge(要拼接的数据,要拼接的数据)
注意我们这里要拼接的数据的长度一定要是一样的
gdp_2018=pd.DataFrame({'City':['上海','北京','深圳','广州','重庆','天津'],
'GDP':[32679,30320,24691,23000,20363,188809],
})
city_area=pd.DataFrame({'City':['重庆','哈尔滨','南宁','昆明','长春','临淇'],
'Area':[82400,5367.95,22111.98,21001.28,20571.06,17201.67]})
q=pd.merge(gdp_2018,city_area)
print(q)
这里我们只有一个元素是匹配上的
左联将我们能匹配得上的数据匹配到我们的左表
gdp_2018=pd.DataFrame({'City':['上海','北京','深圳','广州','重庆','天津'],
'GDP':[32679,30320,24691,23000,20363,188809],
})
city_area=pd.DataFrame({'City':['重庆','哈尔滨','南宁','昆明','长春','临淇'],
'Area':[82400,5367.95,22111.98,21001.28,20571.06,17201.67]})
q=pd.merge(gdp_2018,city_area,how='left')
print(q)
匹配不上的位置全部都用NAN来替代
gdp_2018=pd.DataFrame({'City':['上海','北京','深圳','广州','重庆','天津'],
'GDP':[32679,30320,24691,23000,20363,188809],
})
city_area=pd.DataFrame({'City':['重庆','哈尔滨','南宁','昆明','长春','临淇'],
'Area':[82400,5367.95,22111.98,21001.28,20571.06,17201.67]})
q=pd.merge(gdp_2018,city_area,how='right')
print(q)
gdp_2018=pd.DataFrame({'City':['上海','北京','深圳','广州','重庆','天津'],
'GDP':[32679,30320,24691,23000,20363,188809],
})
city_area=pd.DataFrame({'City':['重庆','哈尔滨','南宁','昆明','长春','临淇'],
'Area':[82400,5367.95,22111.98,21001.28,20571.06,17201.67]})
q=pd.merge(gdp_2018,city_area,how='outer')
print(q)
q=pd.concat([gdp_2018,city_area],axis=0,sort=True,ignore_index=True)
print(q)