【pandas】常用代码记录


前言

本文记录pandas常用代码段,方便使用时直接查找。


一、表格创建

import pandas as pd
import numpy as np

# 空表格
df = pd.DataFrame()

# 字典的方式创建 (key+列表)
df1 = pd.DataFrame({'yes': [0, 2], 'no': [1, 3]})
df2 = pd.DataFrame({'yes': np.arange(2), 'no': np.arange(3, 5)})
# 自定义行号,添加index参数即可
df3 = pd.DataFrame({'Jerry': ['tall', 'smart'], 'Sue': ['cue', 'rich']}, index=['A', 'B'])

Series可以看成是DataFrame的一列

s1 = pd.Series([1, 2, 3, 4, 5])
"""
0    1
1    2
2    3
3    4
4    5
dtype: int64
"""

Series和DataFrame是密切相关的。将DataFrame看作实际上只是一堆“粘合在一起”的Series即可。

二、读取文件

CSV:Comma-Separated Values,是一个用逗号分隔的表格。
链接: 以下代码数据获取链接

wine_reviews = pd.read_csv(r".\test06\wine-reviews\winemag-data-130k-v2.csv")
# shape属性查看几行几列
print(wine_reviews.shape)
# 查看前n行
n=10
print(wine_reviews.head(n))
# index_col=0:设定第一列为index值
wine_reviews = pd.read_csv(r".\test06\wine-reviews\winemag-data-130k-v2.csv", index=0)

三、索引

1、获取一列

# 可以用.列名的方式获取该列数值 ,是一个Series,也可以使用[]操作,
print(wine_reviews.country) 
print(wine_reviews['country']) # 该方法可以处理带空格的字段,将pandas看成更高级的字典,每一列都是一个字典

2、iloc和loc
iloc是基于行号和列号的索引。loc和iloc都是行第一,列第二。iloc将表格看成一个大矩阵(类似numpy中的array),从中选取数据。

wine_reviews.iloc[0] # 选取第0行
wine_reviews.iloc[:, 0] # 选取第0列的所有值 :操作表示选取所有值
wine_reviews.iloc[[0, 1, 2], 0] # 选取0,1,2行的所有值
wine_reviews.iloc[-5:] # 选取倒数5行
wine_reviews.iloc[[0, 1, 2, 3], [1, 2]]

loc是基于标签的索引。对于要获取指定列名的数据样本使用loc较好,第一个是行索引,第二个是列名,类似series,故可以用条件索引。

wine_reviews.loc[0, 'country']  # country列第0个数据
wine_reviews.loc[:, ['taster_name', 'taster_twitter_handle']]  # taster_name、taster_twitter_handle列的所有值

3、改变行索引

wine_reviews.set_index("title", inplace=True)

4、条件选择

print(wine_reviews[wine_reviews.country == 'Italy'])
print(wine_reviews.loc[wine_reviews.country == 'Italy'])
print(wine_reviews.loc[(wine_reviews.country == 'Italy') & (wine_reviews.points >= 90)])
wine_reviews.loc[reviews.country.isin(['Italy', 'France'])]
wine_reviews.loc[reviews.price.notnull()]

5、赋值

wine_reviews['critic'] = 'everyone'  # 新增一列,所有值均为everyone
wine_reviews['index_backwards'] = range(len(reviews), 0, -1)

四、缺失值处理相关

链接: 数据集下载链接

import pandas as pd

if __name__ == '__main__':
    nfl_data = pd.read_csv('./NFL Play by Play 2009-2017 (v4).csv')
    pd.set_option('display.max_rows', 5)
    print(nfl_data.head())

1、统计每一column的缺失值总数及缺失值占总数的百分比

missing_values_count = nfl_data.isnull().sum()
# how many total missing values do we have?
total_cells = np.product(nfl_data.shape)
total_missing = missing_values_count.sum()

# percent of data that is missing
percent_missing = (total_missing / total_cells) * 100
print(percent_missing)

思考:这个值丢失是因为没有记录还是因为它原本不存在?
如果原本就不存在,那么尝试猜测它是什么就没什么意义了。对于原本存在而未记录的,应该试着猜测它们应该是什么,而不是把它们作为NA。
2、dropna()删除有缺失值的行

nfl_data.dropna()  # 删除所有缺失值的行
columns_with_na_dropped = nfl_data.dropna(axis=1)  # 删除有缺失值的列
print(columns_with_na_dropped.head())

3、fillna() 将NaN值替换成指定值

# replace all NA's with 0
subset_nfl_data.fillna(0)  
subset_nfl_data.fillna(method='bfill', axis=0).fillna(0) # 用同一列中紧随其后的任何值替换缺失的值,其余的用0填充

其他

1、idxmax()获取Series最大值所在的列

missing_values_count = nfl_data.isnull().sum()
print(missing_values_count.idxmax())

总结

总结常用的pandas操作,方便查找使用。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Pandas是一个强大的数据分析工具,它提供了丰富的功能来处理和分析各种类型的数据,包括传感器数据。在处理传感器数据时,Pandas可以帮助我们进行数据清洗、转换、分析和可视化等操作。 首先,我们需要将传感器数据加载到Pandas的DataFrame中。DataFrame是Pandas中最常用的数据结构,它类似于一个二维表格,可以方便地处理和操作数据。 加载传感器数据可以使用Pandas的read_csv()函数,该函数可以读取CSV格式的文件,并将其转换为DataFrame。例如,假设我们有一个名为sensor_data.csv的文件,包含了传感器数据的记录,可以使用以下代码加载数据: ```python import pandas as pd df = pd.read_csv('sensor_data.csv') ``` 加载数据后,我们可以使用Pandas提供的各种函数和方法对传感器数据进行处理和分析。以下是一些常用的操作: 1. 查看数据:使用head()函数可以查看DataFrame的前几行数据,默认显示前5行。例如,`df.head()`会显示前5行数据。 2. 数据清洗:传感器数据可能存在缺失值、异常值等问题,我们可以使用Pandas提供的函数来进行数据清洗。例如,使用dropna()函数可以删除包含缺失值的行或列。 3. 数据转换:根据具体需求,我们可以对传感器数据进行各种转换操作,如数据类型转换、日期时间处理、数据重采样等。Pandas提供了丰富的函数和方法来实现这些转换。 4. 数据分析:Pandas提供了各种统计函数和方法,可以对传感器数据进行统计分析。例如,使用describe()函数可以生成数据的基本统计信息,如均值、标准差、最小值、最大值等。 5. 数据可视化:Pandas结合Matplotlib库可以进行数据可视化,帮助我们更直观地理解传感器数据。例如,使用plot()函数可以绘制折线图、柱状图等。 以上只是Pandas在处理传感器数据时的一些基本操作,具体的操作方式还取决于数据的具体情况和需求。希望以上内容对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值