pandas的简单实用

pandas里面经常实用的有两个对象:Series和DataFrame

Series

Series是表示一维。

s = pd.Series([1, 3, 5, np.nan, 6, 8])   
--------------
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

前面的0,1,2等可以自定义,也可以字典形式默认给出

data = {"a":1,"b":2,"c":3}
s = pd.Series(data)   
--------------
a    1
b    2
c    3

#也可以自定义
data = {"a":1,"b":2,"c":3}
s = pd.Series(data,index=['aa','bb','cc'])   

DataFrame

DataFrame类似于exce和数据库这种结构化数据

df2 = pd.DataFrame({'A': 1,
                    'B': pd.Timestamp('20130102'),
                    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
                    'D': np.array([3] * 4, dtype='int32'),
                    'E': pd.Categorical(["test", "train", "test", "train"]),
                    'F': 'foo'})
--------------------------------------
   A          B    C  D      E    F
0  1 2013-01-02  1.0  3   test  foo
1  1 2013-01-02  1.0  3  train  foo
2  1 2013-01-02  1.0  3   test  foo
3  1 2013-01-02  1.0  3  train  foo

也可以实用获取指定的行或者列

df2['A'] #对列进行筛选
df2[0:3]  #对行进行筛选
df2.loc[0:2,["A","B"]]) #可以按行和列进行筛选,第一个是行,第二个是列
df2.iloc[0:2,0:2]  #和上面一样,不过上面是按照标签来算,下面是按索引

也可以快速获得统计数据

df.describe()
--------------------
         A    C    D
count  4.0  4.0  4.0   #和
mean   1.0  1.0  3.0   #平均值
std    0.0  0.0  0.0   #标准差
min    1.0  1.0  3.0  #最小
25%    1.0  1.0  3.0  
50%    1.0  1.0  3.0
75%    1.0  1.0  3.0
max    1.0  1.0  3.0  #最大

转置

df.T #行和列互换

排序

print(df2.sort_index(axis=0,ascending=False))  #安装行排序
print(df2.sort_index(axis=1,ascending=False))  #按照列排序
print(df2.sort_values(by='C',ascending=False))  #按照指定列排序

赋值

df2["A"] = [1,2,3,4]  #A咧重新赋值 也可以用loc和iloc赋值
df2[df2>0] =  -df2  #df2中大于0的都为相反数

对于nan值的处理

df1.dropna(how='any')  #删除空值的行
df1.fillna(value=5) #为空值赋值为5

例子

将excel按照某个字段分为单独的sheet
 iris = pd.read_excel('./3000条数据最终版.xlsx')  # 读入数据文件
    class_list = list(iris['定位国家-中文'].drop_duplicates())  # 获取数据class列,去重并放入列表
    # 第三步:按照类别分sheet存放数据
    writer = pd.ExcelWriter('./iris_sheets.xlsx')  # 创建数据存放路径
    for i in class_list:
        iris1 = iris[iris['定位国家-中文'] == i]
        iris1.to_excel(writer, i)
    writer.save()  # 文件保存
    writer.close()  # 文件关闭
【最优潮流】直流最优潮流(OPF)课设(Matlab代码实现)内容概要:本文档主要围绕“直流最优潮流(OPF)课设”的Matlab代码实现展开,属于电力系统优化领域的教学与科研实践内容。文档介绍了通过Matlab进行电力系统最优潮流计算的基本原理与编程实现方法,重点聚焦于直流最优潮流模型的构建与求解过程,适用于课程设计或科研入门实践。文中提及使用YALMIP等优化工具包进行建模,并提供了相关资源下载链接,便于读者复现与学习。此外,文档还列举了大量与电力系统、智能优化算法、机器学习、路径规划等相关的Matlab仿真案例,体现出其服务于科研仿真辅导的综合性平台性质。; 适合人群:电气工程、自动化、电力系统及相关专业的本科生、研究生,以及从事电力系统优化、智能算法应用研究的科研人员。; 使用场景及目标:①掌握直流最优潮流的基本原理与Matlab实现方法;②完成课程设计或科研项目中的电力系统优化任务;③借助提供的丰富案例资源,拓展在智能优化、状态估计、微电网调度等方向的研究思路与技术手段。; 阅读建议:建议读者结合文档中提供的网盘资源,下载完整代码与工具包,边学习理论边动手实践。重点关注YALMIP工具的使用方法,并通过复现文中提到的多个案例,加深对电力系统优化问题建模与求解的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值