pandas相关知识笔记

iloc[]

df.iloc[ ]通过行和列的索引,来选择 DataFrame 中的数据
df.iloc[0, 1] # 选择第一行第二列的元素 df.iloc[1:3, 1:3]` # 选择第二行到第三行的第二列到第三列的区域

在科学计算中索引数据:

假如cols-1列对应的是1001列,总共100个数据:
Y1 = data.iloc[:, cols-1]  # 返回一维的series对象,一维的对象没有行和列的概念,就是一个列向量
Y2 = data.iloc[:, [cols-1]]  # 返回二维的dataframe对象,100行*1列
Y1 = np.matrix(Y1.values)  # 返回1*100的矩阵(最开始是100行1列,得到100*1的矩阵才是正确的)
Y2 = np.matrix(Y2.values)  # 返回100*1的矩阵,二维的dataframe对象经过.matrix()之后,数据结构和最开始的100行1列是相同的

在科学计算中,需要将非numpy二维数组格式或非矩阵格式的数据转换为numpy二维数组格式或矩阵格式。
在科学计算中索引数据:
Y1 = data.iloc[:, cols-1]  ❌
Y2 = data.iloc[:, [cols-1]]  √ 

Y3 = Y1.to_frame()  # 将一维的series对象转换为二维的dataframe对象

语法笔记

data[data['Admitted'].isin([0])]  
检查data中Admitted列的数据是否是0,`isin()`返回布尔序列,并将布尔序列作为索引从data中选择数据。
这个操作将返回一个新的DataFrame,其中只包含那些在Admitted列中值为0的行。

pd.read_csv(path, header=None, names=["Population", "Profit"])  
header=None表示文件中没有数据作为列标题行

DataFrame基础知识

import pandas as pd
from typing import List  # 从typing模块中导入List类型,typing模块是Python的类型提示系统的一部分

def createDataframe(data: List[List[int]]) -> pd.DataFrame: 
    result = pd.DataFrame(data, columns=["student_id", "age"], index=["s1", "s2", "s3", "s4"])  # 将列表转换为pd.DataFrame格式,index参数指定行名
    return result

data =[[1,15],           
       [2,11],
       [3,11],
       [4,20]]
result_DataFrame = createDataframe(data)
print(result_DataFrame)
输出:
    student_id  age
s1           1   15
s2           2   11
s3           3   11
s4           4   20

************************************************************************************

# 修改result_DataFrame的index属性
result_DataFrame.index = ["st1", "st2", "st3", "st4"]  
print(result_DataFrame)
输出:
     student_id  age
st1           1   15
st2           2   11
st3           3   11
st4           4   20

# shape
print(result_DataFrame.shape)
输出:
(4, 2)

# 输出result_DataFrame的前两行
print(result_DataFrame[:2])  
输出:
     student_id  age
st1           1   15
st2           2   11

# 确定student_id为2那一行的行索引,选取student_id为2那一行的数据
a = result_DataFrame.loc[result_DataFrame["student_id"]==2, ["student_id","age"]]  
print(a)
输出:
     student_id  age
st2           2   11

# 添加10年后的年龄列;匿名函数lambda x:x+10应用于result_DataFrame["age"]的每一个数据上
result_DataFrame["10_age"] = result_DataFrame["age"].apply(lambda x:x+10)  
print(result_DataFrame)
输出:
     student_id  age  10_age
st1           1   15      25
st2           2   11      21
st3           3   11      21
st4           4   20      30

************************************************************************************

# 添加新行
df.loc[new_index, :] = new_values

# 添加新列
df.loc[:, new_column_name] = new_values
df["new_column_name"] = new_values

# df.loc和df.iloc的区别
df.loc:使用行标签和列标签进行索引
df.iloc:使用行和列的整数位置进行索引

List[List[int]]是注解,用来描述变量data的数据结构和类型,表示一个列表,其中包含多个列表,列表包含整数,这种结构通常被称为“嵌套列表”或“二维列表”。
-> pd.DataFrame是注解,表示输出结果为pd.DataFrame类型

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值