05 - Python Pandas DataFrame 常用操作

使用模块:pandas

1. 创建DataFrame

import pandas as pd
# csv/txt
df = pd.read_csv(file_path)
# excel
df = pd.read_excel(file_path)
# json
df = pd.read_json(file_path)
# other
df = pd.read_table(file_path)
# dict
df = pd.DataFrame({"column1":['v1','v2','v3'],"column2":['v1','v2','v3']})
...

读取文件的相关配置参数参照:

https://pandas.pydata.org/pandas-docs/stable/reference/io.html

2. 获取df基本信息

2.1. 列名

column_names = df.columns
# value: Index(['column1', 'column2'], dtype='object')

2.2. 总行数

n_rows = df.shape[1]
n_rows = len(df)
# value: 3

2.3. 总列数

n_columns = df.shape[0]
# value: 2

2.4. empty判断

is_empty = df.empty
# value: True/False

3. 查询数据

3.1 某行的数据

# 查询索引为1的行数据
row_index = 1
row_info = df.loc[row_index]

3.2 某列的数据

column_name = 'Column_1'
column_info = df[column_name]

3.3 某行某列的数据

# 行:row_index, 列:column_name单元格数据
cell_value = df.loc[row_index, column_name]

3.4 整理数据

3.4.1 列值为’ColumnValue’的数据
column_value = 'A'
column_name = 'Product'
df[df[column_name] == column_value]

Out:
           Lot#	    	 Product
0	ABC06P0918055	     A
1	ABC06P0918055.S.C	 A
3.4.2 列中以’StartStr’开头的数据
start_str = 'ABC06P0918055'
column_name = 'Lot#'
df[df[column_name].str.startswith(start_str)]

Out:
            Lot#	    	 Product
0	ABC06P0918055	         A
1	ABC06P0918055.S.A		 B
3.4.3 列中包含’ContainsStr’的数据
contains_str = 'FC'
column_name = 'Lot#'
df[df[column_name].str.contains(contains_str)]

Out:
         Lot#	  	Product
989	FCJ313410358.A	C
3.4.4 某列数据不为空
df[~df[column_name].isnull()]
3.4.5 去除重复的数据
# subset:以哪列为主进行去重;不指定列:去掉完全重复的数据
# keep:重复值保留哪个;first-第一个,last-最后一个
# inplace:是否替换原始的数据;True-替换,False-不替换
df.drop_duplicates(subset=column_name, keep='last', inplace=True)
3.4.6 数据排序
# ascending:正序/逆序
# na_position:NaN值得摆放位置,最前面/最后面
data.sort_values(ascending=False, na_position='first', inplace=True)
3.4.7 替换某个单元格的数值
# index:行索引
# column_name: 列名
df.loc[index, column_name] = new_value

4. 添加数据

df.append([{'column1':'value1','column2':'value2'},{'column1':'value1.1','column2':'value2.1'}])

持续更新中 … …

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值