先列个大纲,有时间慢慢写
1、常用的工具包
2、按行读取,按列读取(按行列号,按行列名)
3、读取某行某列(按行列号,按行列名)
4、写入某行,某列,某一固定位置
5、常见操作,去重、去NA,填充
一、对list的交集,并集,差集处理
a =[1,2,3,4]
b=[2,4,5,6]
#求交集
#方法一
tmp = [val for val in a if val in b]
print tmp
#[2, 4]
#方法二(效率更高)
print list(set(a).intersection(set(b)))
#[2, 4]
#求并集
print list(set(a).union(set(b)))
#[1, 2, 3, 4, 5, 6]
#求差集
print list(set(b).difference(set(a))) # b中有而a中没有的 非常高效!
#[5, 6]
二、行求和、列求和
import pandas as pd
import numpy as np
#axis=1表示从左到右计算
#axis=0表示从上到下计算
df = pd.DataFrame(np.random.randn(2, 3), columns=['A', 'B', 'C'])
#计算各列数据总和并作为新列添加到末尾
df['Col_sum'] = df.apply(lambda x: x.sum(), axis=1)
#计算各行数据总和并作为新行添加到末尾
df.loc['Row_sum'] = df.apply(lambda x: x.sum())
#
A B C Col_sum
0 -0.811697 -0.638478 0.688671 -0.761504
1 1.357440 1.137554 1.526666 4.021660
Row_sum 0.545743 0.499076 2.215337 3.260156
#单独计算某一列的平均值
meanA= df['A'].mean()
print(meanA)
#0.3638287496918416
三、对excel读取后的行列处理
import pandas as pd
#读取excel
filePath = '/Users/zhangfei/Documents/NINE/testdata/dealexcel.xlsx'
df = pd.read_excel(filePath)
dfsheet = pd.read_excel(filePath,sheet_name='学生成绩')
print(df)
print(dfsheet)
# 姓名 语文 数学 英语
0 张三 90 88 90
1 李四 98 79 80
2 王五 85 99 90
3 赵柳 67 96 80
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
#['张三' 90 88 90]
data=df.ix[[1,2]].values#读取指定多行的话,就要在ix[]里面嵌套列表指定行数
#[['李四' 98 79 80]
['王五' 85 99 90]]
print("输出行号列表",df.index.values)#输出行号列表
#输出行号列表 [0 1 2 3]
print("输出列标题",df.columns.values) #输出列标题
#输出列标题 ['姓名' '语文' '数学' '英语']
print("语文成绩",df['语文'].values)#输出语文列
#语文成绩 [90 98 85 67]
data1=df.ix[df['姓名']=='张三',['语文','数学']].values#读姓名为张三行的title以及data列的值,这里需要嵌套列表
data=df.loc[:,['语文','数学']].values#读所有行的title以及data列的值,这里需要嵌套列表
四、查找文件夹下文件的路径,递归查找和非递归查找
import os,re
dirPath = '/Users/zhang/Documents/NINE/PythonScript/files'
fileList = []
#os.walk在文件夹下递归查找
for root,dir,files in os.walk(dirPath):
for file in files:
if file[0]=='.':
#print(file)
pass
elif file[0]=='~':
#print(file)
pass
else:
f = os.path.join(root,file)
if re.search('余额', f):
fileList.append(os.path.join(root,file))
#os.listdir 显示文件夹下的文件,不递归查找
for file in os.listdir(dirPath):
print(file)
if file[0] == '.':
# print(file)
pass
elif file[0] == '~':
# print(file)
pass
else:
f = os.path.join(dirPath,file)
if re.search('余额', f):
fileList.append(f)