pandas康复训练

索引

索引列

data['列名']
data.列名

使用单层方括号 df[‘列名’]:返回 Series
使用双层方括号 df[[‘列名’]]:返回 DataFrame

操作 返回类型 典型用途
df[‘Customers’] Series 单列计算(如 df[‘列名’].mean())
df[[‘Customers’]] DataFrame 保留表格结构(如导出、合并列)

series转化为df

# 方法1:双层方括号
df_single_column = df[['Customers']]

# 方法2:Series.to_frame()
series_to_df = df['Customers'].to_frame()

索引行

loc函数基于行标签和列标签进行索引
iloc函数基于行位置和列位置进行索引
data.iloc[i]
data.iloc[i,'列名':‘列名’]
data.iloc[i,[列名',‘列名’]]

组合条件逻辑运算

(data.列名>=0)  & (data.列名>=0)

返回series,data.iloc[series]

一张表中不存在另一张表中的值

1
在 Pandas 中:isin(values) 用于基于其值是否在给定集合 values 中来过滤和选择行。
~ 表示逻辑非。
因此,可以通过~isin(values) 来选择它们的值不存在于 values 中的行。

df = customers[~customers['id'].isin(orders['customerId'])]

2
思路是基于共同的客户 ID(在 customers 表中的 id 列和 orders 表中的 customerId 列),将表 customers 与表 orders 进行连接。

通过进行左连接,并选择 customerId 为 null 的记录,我们可以确定哪些客户没有下过订单。

df = customers.merge(orders, left_on='id', right_on='customerId', how='left')
Customers table:
+----+-------+
| id | name  |
+----+-------+
| 1  | Joe   |
| 2  | Henry |
| 3  | Sam   |
| 4  | Max   |
+----+-------+
Orders table:
+----+------------+
| id | customerId |
+----+------------+
| 1  | 3          |
| 2  | 1          |
+----+------------+
id	name		id		customerId
1	Joe			2				1
2	Henry		null		  null
3	Sam			1				3
4	Max			null		  null

loc,iloc列索引是否加[]

如果需要 DataFrame 结构(例如后续操作需要列名或二维特性),用 [‘product_id’]。

如果需要 直接取值或一维数据,用 ‘product_id’。

特性 products.loc[ind, [‘product_id’]] products.loc[ind, ‘product_id’]
列索引类型 列表(即使只有一个列名) 单个字符串
返回类型(多行) DataFrame(二维) Series(一维)
返回类型(单行) Series(一维) 标量值(如 str/int)
保留列名 是 是(Series 的 name 属性)
典型使用场景 需要保持 DataFrame 结构时(如后续合并) 直接操作值或传递给需要 Series 的函数

更改列名

df = df.rename(columns={'new':'old'})  # 保存修改后的结果

df.rename(columns={'new':'old'}, inplace=True)  # 直接修改原DataFrame
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值