pandas
pandas
Moo~的秃头之路1024
这个作者很懒,什么都没留下…
展开
-
用pandas读取文件夹下所有文件,如txt
def point_table(x): #读取文件夹下所有txt文件,读取方法是调用函数:如point_table(2) read_path = './all_point_table_file' # 要读取的文件夹的地址 total_path = glob.glob(os.path.join(read_path,'*.txt')) # 读取文件夹中所有文件,返回一...原创 2020-04-26 11:30:39 · 6198 阅读 · 2 评论 -
报电流I程序2020.3.19版,加了400A判断功能
import pandas as pdimport re# import xlrdexcel_h = pd.ExcelFile('C:/h.xlsx' )h0 = pd.read_excel('C:/0.xls')for w in range(0, len(excel_h.sheet_names)): G = globals() G[str(w)] = pd.read...原创 2020-03-19 11:19:22 · 93 阅读 · 0 评论 -
pandas报电压U程序
import pandas as pdimport reimport xlrddef get_str_Ulevel(i,h01_u): #拿到'10kVⅠ' str_station_Ulevel_1 = re.findall('[\a-zA-Z0-9ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ]+', h01_u['"descr"'].at[i]) #拿到['/10kVⅡ', 'AB']...原创 2020-03-17 16:32:41 · 115 阅读 · 0 评论 -
pandas正则表达式,提取汉字、字母、数字、罗马数字
仅提取汉字str_stationname = re.findall('[\u4e00-\u9fa5]+',str)提取英文字母和数字,要匹配什么,在后面加上就行'[\a-zA-Z0-9ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ]+'附:https://www.cnblogs.com/BluceLee/p/11419302.html史上最全的正则表达式-匹配中英文、字母和数字在做项目的过程中,使用正则表达...原创 2020-03-09 16:59:15 · 12133 阅读 · 0 评论 -
第23节_透视表、分组、聚合
两种不同形式的透视表原表:形式一:(推介)orders = pd.read_excel('C:/Temp/Orders.xlsx', dtype={'Date': date})orders['Year'] = pd.DatetimeIndex(orders.Date).year #搞出year这一列groups = orders.groupby(['Category', 'Year...原创 2020-03-08 23:19:11 · 115 阅读 · 0 评论 -
第21节_旋转
旋转table = videos.transpose()简化方法table = videos.T原创 2020-03-08 21:14:20 · 74 阅读 · 0 评论 -
第20节_定位、消除重复数据
dupe = students.duplicated(subset='Name', inplace=Ture,keep=first) #subset可以是列表.dupe = students.drop_duplicates(subset='Name', inplace=True, keep='last') #last,保留最后一个出现的,默认保留第一个出现的 dupe = studen...原创 2020-03-08 21:07:03 · 85 阅读 · 0 评论 -
第19节_求和、平均值、统计引导
小技巧:取DataFrame的一部分来做分析temp = student[['tset1', 'test2', 'test3']]求和求平均值row_sum = students[['Test_1', 'Test_2', 'Test_3']].sum(axis=1)row_mean = students[['Test_1', 'Test_2', 'Test_3']].mean(axis...原创 2020-03-08 17:41:26 · 87 阅读 · 0 评论 -
第18节_分割列
数据变形,Data Transformationemployees = pd.read_excel(r'D:\018/Employees.xlsx', index_col='ID')split方法,默认用空格分割expand参数:False(默认),按列表输出True,直接两列Series输出n参数:切出多个字符串,保留n个n=0,全部保留df = employees['Ful...原创 2020-03-08 17:24:40 · 69 阅读 · 0 评论 -
第17节_数据校验
定义一个校验函数解法一:def score_valication(row): try: assert 0 <= row.Score <= 100 except: print(f'#{row.ID}\tstudent {row.Name} has an invalid score {row.Score}')\t:制表符,为了对其显示...原创 2020-03-08 17:14:06 · 94 阅读 · 0 评论 -
第16节_横向联合
students = pd.read_excel(r'D:\Student_score.xlsx', sheet_name='Students')scores = pd.read_excel(r'D:\Student_score.xlsx', sheet_name='Scores')横向联合用merge方法on=‘ID’,用‘ID’列合并how=‘left’,保留左列的所有元素.fil...原创 2020-03-08 17:01:13 · 202 阅读 · 0 评论 -
第14-15节_散点图、直方图、密度图
散点图homes.plot.scatter(x='sqft_living', y='price')plt.show()直方图homes.sqft_living.plot.hist(bins=100) #bins:桶,100桶里装,更加细腻优化:横轴设置没隔500一个刻度plt.xticks(range(0, max(homes.sqft_living), 500), fontsi...原创 2020-03-07 19:46:47 · 267 阅读 · 0 评论 -
第13节_折线图、叠加区域图
weeks.plot(y=['Accessories', 'Bikes', 'Clothing', 'Components'])plt.title('Sales Trends', fontsize=16, fontweight='bold')plt.xticks(weeks.index, fontsize=8) #设置为index的轴的处理方法plt.show()叠加区域图,仅改are...原创 2020-03-07 17:45:11 · 188 阅读 · 0 评论 -
第12节_饼图
因为默认col是标签,所以设置一下colstudents = pd.read_excel('C:/Temp/Students.xlsx', index_col='From')counterclock=False,顺时针startangle=-270,起点从12点开始students['2017'].plot.pie(fontsize=8, counterclock=False, star...原创 2020-03-07 17:32:33 · 68 阅读 · 0 评论 -
第11节_叠加柱状图、水平柱状图
一些前期处理,新建Total列,并进行排序users = pd.read_excel('C:/Temp/Users.xlsx')users['Total'] = users['Oct'] + users['Nov'] + users['Dec']users.sort_values(by='Total', inplace=True, ascending=False)实现叠加users.p...原创 2020-03-07 17:20:16 · 208 阅读 · 0 评论 -
第10节_分组柱状图
先排个序students.sort_values(by='2017', inplace=True, ascending=False)设置x,y轴students.plot.bar('Field', ['2016', '2017'], color=['orange', 'Red'])设置标题格式plt.title('International Students by Field', f...原创 2020-03-07 16:54:27 · 302 阅读 · 0 评论 -
第9节_柱状图
import matplotlib.pyplot as pltstu = pd.read_excel('D:\Students.xlsx')柱状图,设置x,y轴,颜色,标题stu.plot.bar(x='Field',y='Number',color = 'orange',title='Fig')紧凑型显示,让每个元素的名字显示出来plt.tight_layout()plt.sh...原创 2020-03-07 16:37:12 · 77 阅读 · 0 评论 -
pandas一些常用基础
1.WPS设置索引由字母变数字的方法:文件-选项-常规与保存-R1C12.print所有的行和列#显示所有列pd.set_option('display.max_columns', None)#显示所有行pd.set_option('display.max_rows', None)#设置value的显示长度为100,默认为50pd.set_option('max_colwidth...原创 2020-03-02 17:58:59 · 89 阅读 · 0 评论 -
第一节_创建Excel
df = pd.DataFrame()DataFrame Class,相当于sheet() 实例化df.to_excel('C:/1.xls')to_excel methord方法 写入exceldf = pd.DataFrame({'ID':[1,2,3],'Name':['Tim','kk','Dick']})df.to_excel('C:/1.xls')结果如下:0 ...原创 2020-03-02 18:02:52 · 85 阅读 · 0 评论 -
第二节_读取Excel
总结:行头,index 列头,columnsh1 = pd.read_excel('C:/h1.xls')print(h1.shape)读取h1.xlsShape property属性 读取行列数print(h1.columns)读取列头print(h1.head())读取前几行,默认5行print(h1.head(3))读取前3行print(h1.tail()...原创 2020-03-02 18:07:08 · 101 阅读 · 0 评论 -
第三节_行、列、单元格
d = {'x':10,'y':20,'z':30}s1 = pd.Series(d)print(s1.index)输出Index([‘x’, ‘y’, ‘z’], dtype=‘object’)L1 = [1,2,3]L2 = ['x','y','z']s1 = pd.Series(L1,index=L2)print(s1.index)输出Index([‘x’, ‘y’, ‘...原创 2020-03-02 18:11:46 · 76 阅读 · 1 评论 -
第4节_下拉填充
books1 = pd.read_excel('C:/books1.xlsx',skiprows=3,usecols='C:F')skiprows=3 跳过前3行usecols=‘C:F’ 使用C到F列books1['ID'].at[0]=100给ID列,0行,赋值100for i in books1.index: books1['ID'].at[i] = i+1ID列的...原创 2020-03-02 19:19:19 · 150 阅读 · 0 评论 -
第5节_日期
详见from datetime import date,timedelta填写日期start = date[2018,1,5]books['Date'].at[i] = start日期下拉加一books['Date'].at[i] = start + timedelta(days=i)给年加一books['Date'].at[i] = start + timedelta(st...原创 2020-03-07 10:48:41 · 79 阅读 · 0 评论 -
第六节 调用函数
books = pd.read_excel('C:/books.xlsx',index_col='ID')books['Price'] = books['ListPrice']*books['Discount']print(books)一列×一列i in books.index: books['Price'].at[i] = books['ListPrice'].at[i]*bo...原创 2020-03-02 19:21:33 · 83 阅读 · 0 评论 -
第7节_排序
books.sort_values(by='List',inplace=True,ascending=True)按列排序,其中:By,按此列排序Inplace,不要创建新的工作表Ascending=True,从小到大排Ascending=Fulse,从大到小排books.sort_values(by=['List','Discount'],inplace=True)by=[‘Li...原创 2020-03-02 19:43:30 · 80 阅读 · 0 评论 -
第8节_数据筛选过滤
def age(a): return 18<=a<30def level(s): return 85<=s<=100定义函数,age,给age赋值a,a的范围见上定义函数,level,给level赋值s,s的范围见上stu = stu.loc[stu['Age'].apply(age)]Stu.[‘Age’]这一列用age函数,Loc,保留此...原创 2020-03-02 19:44:51 · 94 阅读 · 0 评论 -
9-15 16-21 23-26 29-30 索引
第9节 柱状图第10节 分组柱图第11节 水平柱状图第12节 饼图第13节 折线图、叠加区域图第14节 散点图、直方图第15节 密度图、数据相关性第16节 多表联合第17节 数据校验、轴的概念第18节 分割列第19节 求和平均统计第20节 定位、消除重复数据第21节 旋转表格...原创 2020-03-02 19:45:19 · 85 阅读 · 0 评论 -
第22节_读取csv、tsv、txt
stu = pd.read_csv('C:/students.txt',sep='|',index_col='ID')读取txtstu = pd.read_csv('C:/students.csv',index_col='ID')读取csvstu = pd.read_csv('C:/students.tsv',sep='\t',index_col='ID')读取tsv...原创 2020-03-02 20:12:35 · 1303 阅读 · 0 评论 -
第27节_行操作集锦
s1 = pd.read_excel('C:/stu1.xlsx',sheet_name='s1')s2 = pd.read_excel('C:/stu1.xlsx',sheet_name='s2')stu = s1.append(s2).reset_index(drop=True)把两个sheet合并,s1.append(s2),把s2加入到s1中reset_index(drop=T...原创 2020-03-02 19:50:21 · 129 阅读 · 0 评论 -
第28课_列操作集锦
横着接两个表格stu = pd.concat([s1,s2]).reset_index(drop=True)把s2加到s1上,默认竖着接stu = pd.concat([s1,s2],axis=1)把s2加到s1上,横着接增加一列stu['BBC']=np.repeat(25,len(stu))len(stu),共有多少列stu['BBC']=np.arange(0,len(...原创 2020-03-02 19:52:21 · 131 阅读 · 0 评论