df_city = df2_c.groupby('居住地').count() df1['city'] = df1['地区'].str[:-1] qldata = pd.merge(df_city,df1,left_index=True,right_on='city') qldata1 = qldata[['常住人口','city','_id']] qldata1['知友密度'] = qldata1['_id'] / qldata1['常住人口'] def f2(df,*cols): colnames = [] for col in cols: colname = col + '_nor' df[colname] = (df[col] - df[col].min())/(df[col].max() - df[col].min())*100 colnames.append(colname) return(df,colnames) resultdf = f2(qldata1,'_id','知友密度')[0] resultcolname = f2(qldata1,'_id','知友密度')[1] qldata_top20_sl = resultdf.sort_values(resultcolname[0], ascending = False)[['city',resultcolname[0]]][:20] qldata_top20_md = resultdf.sort_values(resultcolname[1], ascending = False)[['city',resultcolname[1]]][:20] qldata1.sort_values('_id',ascending=False) fig1 = plt.figure(num = 1,figsize = (12,3)) y1 = qldata_top20_sl[resultcolname[0]] plt.bar(range(20),y1,tick_label = qldata_top20_sl['city'],facecolor = 'yellowgreen') plt.title('知友数量') for i,j in zip(range(20),y1): plt.text(i,0,'%.1f'%j,fontsize = 8) fig2 = plt.figure(num = 2,figsize = (12,3)) y2 = qldata_top20_md[resultcolname[1]] plt.bar(range(20),y1,align='edge',tick_label = qldata_top20_sl['city'],facecolor = 'red') plt.title('知友密度') for i,j in zip(range(20),y2): plt.text(i,0,'%.1f'%j,fontsize = 8)
时间: 2024-01-20 19:04:49 浏览: 127
非常感谢提供代码。根据提供的代码,你已经按照居住地字段统计了知友数量和计算了知友密度。接下来,我会使用提供的函数来对知友数量和知友密度进行标准化处理,并将结果存储在新的列中。
然后,我会使用Matplotlib库创建两个图表来进行可视化:一个是知友数量的柱状图,另一个是知友密度的柱状图。完成后,我会分析结果并得出结论。
请继续提供代码,包括调用标准化函数和创建柱状图的代码。
相关问题
代码简写:import pandas as pd # 1. 读取指定表格 df1 = pd.read_excel('result-new.xlsx', sheet_name='Sheet1') df2 = pd.read_excel('基础数据-new.xlsx', sheet_name='本外币') df3 = pd.read_excel('基础数据-new.xlsx', sheet_name='人民币') # 标的表索引列位置及数据位置 grouped = df2.groupby(df2.columns[1]).agg({df2.columns[2]: 'sum', df2.columns[5]: 'sum'}).reset_index() grouped1 = df3.groupby(df2.columns[1]).agg({df3.columns[2]: 'sum', df3.columns[5]: 'sum'}).reset_index() # 合并表1和表2的结果 result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') result = pd.merge(result, grouped1, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') # 输出结果到文件 result.to_excel('531本外币比年初.xlsx', index=False)
import pandas as pd
# 读取指定表格
df1, df2, df3 = pd.read_excel('result-new.xlsx', sheet_name='Sheet1'), pd.read_excel('基础数据-new.xlsx', sheet_name='本外币'), pd.read_excel('基础数据-new.xlsx', sheet_name='人民币')
# 标的表索引列位置及数据位置
grouped = df2.groupby(df2.columns[1]).agg({df2.columns[2]: 'sum', df2.columns[5]: 'sum'}).reset_index()
grouped1 = df3.groupby(df3.columns[1]).agg({df3.columns[2]: 'sum', df3.columns[5]: 'sum'}).reset_index()
# 合并表1和表2的结果
result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left')
result = pd.merge(result, grouped1, left_on=df1.columns[1], right_on=grouped1.columns[0], how='left')
# 输出结果到文件
result.to_excel('531本外币比年初.xlsx', index=False)
代码错误import pandas as pd # 1. 读取指定表格 df1 = pd.read_excel('管理清单.xlsx', sheet_name='Sheet1') df2 = pd.read_excel('new_公司.xlsx', sheet_name='Sheet1') # 标的表索引列位置及数据位置 grouped = df2.groupby(df2.columns[1])[df2.columns[3]].reset_index() # 合并表1和表2的结果 result = pd.merge(df1, grouped, left_on=df1.columns[1], right_on=grouped.columns[0], how='left') # 输出结果到文件 result.to_excel('合并数据.xlsx', index=False)
这段代码的错误可能是由于没有安装 pandas 库导致的。你可以尝试在终端中运行以下命令来安装 pandas 库:
```
pip install pandas
```
如果已经安装了 pandas 库,那么可能是因为文件路径不正确或文件名错误导致的。请检查文件路径和文件名是否正确。
阅读全文