python数据处理:数据预处理、数据存储、数据加载等等
一、数据加载-pandas常用方法
pandas读取/写入文件
参考资料:
pandas:https://pandas.pydata.org/
pandas之数据存储 https://www.cnblogs.com/harden13/p/12987359.html
读excel格式文件xls xlsx
c_df = pd.read_excel('data/circulation.xls',header=None,names=['minra','disease'])
#header = None表示,所读取的文件的第一行不是列名
#namse=[]是对列名就行修改
当出现Excel xlsx file; not supported两种解决办法:
原因:xlrd1.2.0之后的版本不支持xlsx格式,支持xls格式
办法一:
卸载新版本 pip uninstall xlrd
安装老版本:pip install xlrd=1.2.0 (或者更早版本)
方法二:
将xlrd用到的excel版本格式修改为xls(保险起见,另存为xls格式)
建议:个人更推荐使用第二种方法
pandas如何获取元素值
https://blog.csdn.net/sinat_29675423/article/details/87975489
pandas列的重命名操作
https://blog.csdn.net/irober/article/details/107041407
pandas列的拼接操作
pandas按照列的值排序(某一列或者多列)
https://www.jb51.net/article/202043.htm
d = {'A': [3, 6, 6, 7, 9], 'B': [2, 5, 8, 0, 0]}
df = pd.DataFrame(data=d)
print('排序前:\n', df)
'''
排序前:
A B
0 3 2
1 6 5
2 6 8
3 7 0
4 9 0
'''
res = df.sort_values(by='A', ascending=False) #ascending代表是否递增排序
print('按照A列的值排序:\n', res)
'''
按照A列的值排序:
A B
4 9 0
3 7 0
1 6 5
2 6 8
0 3 2
'''
pandas数据筛选操作
筛选行:
a. 按照列的条件筛选
df = pandas.DataFrame(...) # supposing it has 3 columns: a, b and c
df[(df['a'] > 0) & (df['b'] < 0) | df['c'] > 0]
b. 按照索引的条件筛选
needed_seq=[1,2,3,6]
needed_df = df.loc[needed_seq]
筛选列:
a. 筛选多列
dfs = df[['a','b']]
pandas添加一列固定值
https://www.cnblogs.com/rrttp/p/8108188.html
字典转pandas
import pandas as pd
a=[1,2,3,4]#列表a
b=[5,6,7,8]#列表b
c={"a" : a,
"b" : b}#将列表a,b转换成字典
data=pd.DataFrame(c)#将字典转换成为数据框
print(data)
二、数据预处理
2.1 生成graph数据的one hot编码
如何逐行读取(或者逐列读取 )dataframe对象?
参考资料:在pandas中遍历DataFrame行
有如下 Pandas DataFrame:
import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
输出结果:
c1 c2
0 10 100
1 11 110
2 12 120
for index, row in df.iterrows():
print row["c1"], row["c2"]
# 如果是系统默认的0,1这种列名,则不用加“”号
输出结果:
10 100
11 110
12 120