pandas DataFrame操作(1)

pandas DataFrame操作(1)

导入库

import pandas as pd
import numpy as np

构建DataFrame

tuples = [('a', 'v1'), ('a', 'v2'), ('b', 'v1'), ('b', 'v2')]
index = pd.MultiIndex.from_tuples(tuples)
columns = ['c1', 'c2']
values = np.arange(8).reshape(4, 2)
df = pd.DataFrame(values, columns=columns, index=index)

df

输出结果:


c1	c2
a	v1	0	1
v2	2	3
b	v1	4	5
v2	6	7

读取csv或xlsx文件创建DataFrame

# 读取csv创建DataFrame
df = pd.read_csv(csv_file_path)

# 读取xlsx创建DataFrame
df = pd.read_excel(xlsx_file_path)

选择多列

  • df[col_names_list]: 直接通过列名称列表来选择多列
  • f.select_dtypes(include=['int']): 选择数据类型是int的列
  • df.filter(like='str', regex='re'): 此方法只会检查所有的column names,而不会检查确切的数据
  • df[new_col_order_list]: 当要对df中的列组织顺序时,可以直接用想要的列名序来index
  • (df + .00501)// .01: 可以将df中的数据全都四舍五入成1位小数

df.loc[] 使用

  • df.loc['i1']: 返回一个Series,包含i1行的数据
  • df.loc[['i1', 'i2']]: 返回一个df,包含i1 i2两行数据
  • df.loc['i1', 'c1']: 返回对应位置的数据
  • df.loc['i1':'12', 'c1':'c2']: 返回一个df,包含对应行和列的数据
  • df.loc[df['c1'] > 1]: 返回一个df,包含c1列中数值大于1的所有行
  • df.loc[df['c1'] > 1, ['c2']]: 返回一个df,包含上面返回df中的c2列
  • df.loc[lambda df: df['c1'] == 1]: 返回一个df,包含c1列中数值等于1的所有行
  • df.loc[['i1', 'i2'], ['c1']] = 1: 将df中对应位置的数据改为1
  • df.loc['i1'] = 1: 将对应行的数据全部改为1
  • df.loc[:, 'c1'] = 1:将对应列的数据全部改为1
  • df.loc[df['c1'] > 1] = 0: 将对应列数据大于1的所有行的所有数据改为0
  • f.loc[1:9]: 返回1-9行的数据

df.iloc[] 使用

  • df.loc[]一样的功能,只是完全基于数字进行索引,例如df.iloc[1:3, 1:3]就相当于df.loc['i1':'i1', 'c1':'c3'],其他类似
  • df.loc[]也能完全基于数字进行索引
  • df.at['i1', 'c1']: 返回对应位置的值
  • df.at['i1', 'c1'] = 1: 将对应位置的值设为1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值