LImetrics的个人博客分享 http://blog.sciencenet.cn/u/LImetrics

博文

python学习——根据矩阵文件构造网络文件

已有 5819 次阅读 2019-2-20 22:13 |个人分类:python学习|系统分类:科研笔记| python学习, 网络矩阵转化为边列表, 数据预处理

【python学习——根据矩阵文件构造网络文件】

源代码以及测试数据文件

convert_matrix_to_list.py

test_matrix.xlsx

初始矩阵文件


经处理后的文件

1.导入相应的库以及读取数据
import pandas as pd
import numpy as np
data = pd.read_excel("C:/Users/test_matrix.xlsx",index_col="国家/地区")
data.head()

2.构造第一列数据,即边列表的起始边
# x = ['a','c','b']
# y = [[x[i]]*2 for i in range(len(x))]
# t = []
# [t.extend(i) for i in y]
# t   ['a', 'a', 'c', 'c', 'b', 'b']
#  data.shape[1]计算列数
#  data.shape[0]计算行数,也可用len(data),更快
index_list = data.index.tolist()   
combine_list = [[index_list[i]]*data.shape[1] for i in range(len(index_list))] 
#  将多个了列表进行合并
start_list = []
[start_list.extend(i) for i in combine_list]

3.构造第二列数据,即边列表的终止边
# ['a','c','b','a','c','b']
columns_list = data.columns.tolist()
end_list = columns_list*data.shape[0]

4.构造第三列数据,即边的权重
data_values_list = np.reshape(data.values,data.shape[0]*data.shape[1])

5.将列表转化为数据框
edge_list = {'start_list':start_list,
        'end_list':end_list,
         'values_list':data_values_list}
#data_new = pd.DataFrame(edge_list,index = start_list) 重新设置索引
data_new = pd.DataFrame(edge_list)
data_new.head()

6.根据相应的条件进行数据的筛选
# 多条件筛选数据
#  df.loc[(df['column_name'] == some_value) & df['other_column'].isin(some_values)]
selected_data = data_new.loc[data_new['values_list'] >= 5]  #筛选出阈值大于等于5的边。
selected_data.head()
# data_new.to_excel("new_data.xlsx")

7.将处理好的数据导出到excel中
selected_data.to_excel("selected_data.xlsx")




https://wap.sciencenet.cn/blog-3262505-1163302.html

上一篇:python学习——算法练习1
收藏 IP: 202.113.11.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 11:50

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部