300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > pandas基础教程:(Dataframe操作/ Series操作/读取CSV文件/读取npy文件/pandas与numpy/数据科学)

pandas基础教程:(Dataframe操作/ Series操作/读取CSV文件/读取npy文件/pandas与numpy/数据科学)

时间:2024-03-09 13:06:16

相关推荐

pandas基础教程:(Dataframe操作/ Series操作/读取CSV文件/读取npy文件/pandas与numpy/数据科学)

目录

1 Dataframe

1.1 取出Dataframe中的数据

1.2 遍历DataFrame

1.3 dataframe添加行的办法:

1.3.1 loc

1.3.2 concat

1.3.3 append

1.4 DataFrame读取和修改

1.4.1 修改对应位置的值

1.4.2 查询对应位置的值

1.4.3 iloc

1.4.4 at

1.4.5 iat

1.4.6 直接打印

1.5 删除行列

1.5.1删除列

1.6 创建空的DataFrame

1.7判断dataframe是否为空

1.8 查看dataframe开头和结尾数据

1.9 对一个DataFrame的每一列都统计分析8个属性

1.10读取CSV文件为DataFrame

1.11读取出Dataframe中的数据

1.11.1 取出第一行数据

1.11.2 取出某一列数据

1.12 遍历DataFrame

1.12.1 itertuples 按行遍历

1.12.2 iterrows 按行遍历

1.12.3 iteritems 按列遍历

2 Series 常用属性和方法

获取值

3 设置pandas打印不省略

4 pandas缺失值填充

5 python pandas 之drop()函数

6 读取文件夹所有文件(夹)的名字

7 设置pandas打印不省略

7.1 设置不省略列(将列全部打印)

7.2设置不省略行(将行全部打印)

8 保存npy格式的数据

9 pandas.describe()

10 保留两位小数

1 Dataframe

1.1 取出Dataframe中的数据

取出第一列数据

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)print(df_data[0:1])

取出某一行数据

print(df_data.valid)

或者

print(df_data['valid'])

1.2 遍历DataFrame

itertuples 按行遍历

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)for i in df_data.itertuples():print(i) print(i[1])

iterrows 按行遍历

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)for i,row in df_data.iterrows():print(i)print(row[2])

iteritems 按列遍历

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)for column_name, Series_values in df_data.iteritems():print(column_name)print(Series_values)

valid0/7/1 0:051/7/1 0:242/7/1 0:443/7/1 0:494/7/1 1:055/7/1 1:246/7/1 1:447/7/1 1:478/7/1 2:059/7/1 2:2410 /7/1 2:4411 /7/1 2:5012 /7/1 3:0413 /7/1 3:24

1.3 dataframe添加行的办法:

1.3.1 loc

df_empty = [tmstp, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]data_seq.loc[i] = df_empty

1.3.2 concat

data_seq = pd.concat([data_seq, raw_data], ignore_index=True)

1.3.3 append

import pandas as pdimport numpy as npdata = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)print(data)a_df = pd.DataFrame([['/7/1 0:00', np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, '10000', np.nan, np.nan]],columns=['valid', 'tmpf', 'dwpf', 'relh', 'drct', 'sknt', 'alti', 'vsby', 'skyc1', 'skyl1', 'feel'])data = data.append(a,ignore_index = True)print(data)

输出结果在data的最后一行加入了a_df的数据,并且最后一行的索引为2934,如果ignore_index = False,最后一行的索引为0

1.4 DataFrame读取和修改

1.4.1 修改对应位置的值

a、知道index 和列名的时候

df_data.loc[0,'valid'] = '/7/1 0:00'df_data.loc[0,'tmpf'] = 1

b、不知道index 根据条件修改的时候

df_data.loc[(df_data['valid']=='/7/1 0:00'),'tmpf'] = 0

1.4.2 查询对应位置的值

a、查对应行

df[0:] #第0行及之后的行,df的全部数据df[:2] #第3行之前的数据不包含第三行 左开右闭df[0:1] #第0行df[1:3] #第2行到第3行(不含第4行)df[-1:] #最后一行df[-3:-1] #倒数第3行和倒数第2行,因为没有-0,所以没有最后一行

b、使用索引值取对应位置的元素值

print(df_data.loc[0,'valid'])print(df_data.loc[0,['valid','tmpf']])

1.4.3 iloc

iloc按照行与列的索引提取元素

a、打印

print(df_data.iloc[0, 0]) # 第1行第1列的数据print(df_data.iloc[1, 2]) # 第2行第3列的数据print(df_data.iloc[[1, 3], 0:2]) # 第2行和第4行,从第1列到第2列(左闭右开不包含第3列)的数据print(df_data.iloc[1:3, [1, 2]]) # 第2行到第3行(不包含第1,4行),第2列和第3列的数据

b、修改

df_data.iloc[0,1:4] = [88.88,88.88,88.88] #修改一无素df_data.iloc[:3,5] = [11,22,33] #修改一整列

1.4.4 at

访问个别元素

print(df_data.at[5,'valid'])

1.4.5 iat

print(df_data.iat[0,0])

1.4.6 直接打印

print(df_data[df_data.tmpf < 60].valid)

1.5 删除行列

1.5.1删除列

all_data.drop(['Datetime'], axis=1, inplace=True)

1.6 创建空的DataFrame

data_seq = pd.DataFrame(columns=['valid', 'tmpf', 'dwpf', 'relh', 'drct', 'sknt', 'alti', 'vsby', 'skyc1', 'skyl1', 'feel'])

1.7判断dataframe是否为空

if data.empty:print('该dataframe为空')

1.8 查看dataframe开头和结尾数据

print(data_seq.head(100))print(data_seq.tail(100))

1.9 对一个DataFrame的每一列都统计分析8个属性

print(one_data.describe())

1.10读取CSV文件为DataFrame

cur_df = pd.read_csv(data_path, names=col_names)

1.11读取出Dataframe中的数据

1.11.1 取出第一行数据

import pandas as pddf_data=pd.read_csv('path', nrows=n)print(df_data[0:1])

1.11.2 取出某一列数据

print(df_data.valid)#或者print(df_data['valid'])

1.12 遍历DataFrame

1.12.1itertuples 按行遍历

for i in df_data.itertuples():print(i)

1.12.2 iterrows 按行遍历

for i,row in df_data.iterrows():print(i)

1.12.3 iteritems 按列遍历

for column_name, Series_values in df_data.iteritems():print(column_name)

2 Series 常用属性和方法

将DataFrame一列转化为Series

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)one_data = pd.Series(df_data.skyc1) print("数据的值: ",one_data.values)

输出:数据的值: ['CLR' 'CLR' 'CLR' ... 'FEW' 'FEW' 'FEW']

获取值

获取索引

print("索引的值原始值: ", one_data.index)

输出:索引的值原始值: RangeIndex(start=0, stop=2934, step=1)

转化为list

print("索引的值转换后: ", list(one_data.index))

获取每对值:

# 获取每对索引的值, 使用 items 方法print("每对索引和值原始值: ", one_data.items)

输出:1 CLR2 CLR3 FEW4 CLR5 CLR6 CLR7 FEW8 CLR9 CLR10CLR11CLR12CLR

遍历

for value in data.values:print(value)

3 设置pandas打印不省略

设置不省略列(将列全部打印)

pd.set_option('display.width', None)

设置不省略行(将行全部打印)

pd.set_option('display.max_rows', None)

4 pandas缺失值填充

对数值进行插值填充

data_seq = data_seq.interpolate(method='linear', limit_direction='forward')

limit_direction:向前插值或者向后插值

method

linear:线性插值

nearest:阶梯插值,相当于0阶B样条曲线

zero:复制邻近值

slinear:滑动线性插值

quadratic:平方插值

cubic:立方插值

barycentric:重心

pad:对现有值进行插值,适合字符数据

( 'time'(时间), 'index'(索引), 'values'(序列值), 'pad'(前向填充), 'nearest'(最邻近), 'zero'(零值), 'slinear'(滑动线性), 'quadratic'(2次插值), 'cubic'(3次插值), 'spline'(样条函数), 'barycentric'(重心), 'polynomial'(分段多项式), 'from_derivatives'(衍生), 'krogh'(克罗格), 'piecewise_polynomial'(分段多项式),'pchip'(分段三次Hermite多项式插值), 'akima'(akima光滑插值), 'cubicspline'(3次样条))

5 python pandas 之drop()函数

import pandas as pdimport numpy as npdata=pd.DataFrame(np.arange(20).reshape((5,4)),columns=list('ABCD'),index=['a','b','c','d','e'])print(data)print('*'*40)print(data.drop(['a'])) #删除a 行,默认inplace=False,print('*'*40)print(data)# data 没有变化print('*'*40)print(data.drop(['A'],axis=1))#删除列print('*'*40)print(data.drop(['A'],axis=1,inplace=True)) #在本来的data 上删除print('*'*40)print(data)data 发生变化

6 读取文件夹所有文件(夹)的名字

file_name_arr = os.listdir('./data')

7 设置pandas打印不省略

7.1 设置不省略列(将列全部打印)

pd.set_option('display.width', None)

7.2设置不省略行(将行全部打印)

pd.set_option('display.max_rows', None)

8 保存npy格式的数据

import numpy as npdata_1 = np.zeros((3, 3))# 将 ndarray 类型的数据以字典的形式保存在扩展名为 npz 的数据文件中np.save("test.npy", data_1)

9 pandas.describe()

count:数量统计,此列共有多少有效值 unipue:不同的值有多少个 std:标准差 min:最小值 25%:四分之一分位数 50%:二分之一分位数 75%:四分之三分位数 max:最大值 mean:均值

离散值特有的:

unique:不重复的离散值数目,去重之后的个数 top: 出现次数最多的离散值 freq: 上述的top出现的次数

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)z = df_data.describe()

取出某一个参数

import pandas as pddf_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)z = df_data.describe().loc['mean']

10 保留两位小数

a = 1.233print(a.round(2)))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。