赞
踩
目录
取出第一列数据
- import pandas as pd
- df_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'])
itertuples 按行遍历
- import pandas as pd
- df_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 pd
- df_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 pd
- df_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)
valid 0 2016/7/1 0:05 1 2016/7/1 0:24 2 2016/7/1 0:44 3 2016/7/1 0:49 4 2016/7/1 1:05 5 2016/7/1 1:24 6 2016/7/1 1:44 7 2016/7/1 1:47 8 2016/7/1 2:05 9 2016/7/1 2:24 10 2016/7/1 2:44 11 2016/7/1 2:50 12 2016/7/1 3:04 13 2016/7/1 3:24
- 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
data_seq = pd.concat([data_seq, raw_data], ignore_index=True)
- import pandas as pd
- import numpy as np
- data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)
- print(data)
- a_df = pd.DataFrame(
- [['2016/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
a、知道index 和列名的时候
- df_data.loc[0,'valid'] = '2016/7/1 0:00'
- df_data.loc[0,'tmpf'] = 1
b、不知道index 根据条件修改的时候
df_data.loc[(df_data['valid']=='2016/7/1 0:00'),'tmpf'] = 0
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']])
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] #修改一整列
访问个别元素
print(df_data.at[5,'valid'])
print(df_data.iat[0,0])
print(df_data[df_data.tmpf < 60].valid)
all_data.drop(['Datetime'], axis=1, inplace=True)
- data_seq = pd.DataFrame(
- columns=['valid', 'tmpf', 'dwpf', 'relh', 'drct', 'sknt', 'alti', 'vsby', 'skyc1', 'skyl1', 'feel'])
- if data.empty:
- print('该dataframe为空')
- print(data_seq.head(100))
- print(data_seq.tail(100))
print(one_data.describe())
cur_df = pd.read_csv(data_path, names=col_names)
- import pandas as pd
- df_data=pd.read_csv('path', nrows=n)
- print(df_data[0:1])
- print(df_data.valid)
- #或者
- print(df_data['valid'])
- for i in df_data.itertuples():
- print(i)
- for i,row in df_data.iterrows():
- print(i)
- for column_name, Series_values in df_data.iteritems():
- print(column_name)
将DataFrame一列转化为Series
- import pandas as pd
- df_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 CLR 2 CLR 3 FEW 4 CLR 5 CLR 6 CLR 7 FEW 8 CLR 9 CLR 10 CLR 11 CLR 12 CLR
遍历
- for value in data.values:
- print(value)
设置不省略列(将列全部打印)
pd.set_option('display.width', None)
设置不省略行(将行全部打印)
pd.set_option('display.max_rows', None)
对数值进行插值填充
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次样条))
- import pandas as pd
- import numpy as np
- data=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 发生变化
file_name_arr = os.listdir('./data')
pd.set_option('display.width', None)
pd.set_option('display.max_rows', None)
- import numpy as np
- data_1 = np.zeros((3, 3))
- # 将 ndarray 类型的数据以字典的形式保存在扩展名为 npz 的数据文件中
- np.save("test.npy", data_1)
count:数量统计,此列共有多少有效值 unipue:不同的值有多少个 std:标准差 min:最小值 25%:四分之一分位数 50%:二分之一分位数 75%:四分之三分位数 max:最大值 mean:均值
离散值特有的:
unique:不重复的离散值数目,去重之后的个数 top: 出现次数最多的离散值 freq: 上述的top出现的次数
- import pandas as pd
- df_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)
- z = df_data.describe()
取出某一个参数
- import pandas as pd
- df_data = pd.read_csv('my_dataset\wx_data\PeMSD8\PeMSD8.csv', nrows=2934)
- z = df_data.describe().loc['mean']
- a = 1.233
- print(a.round(2)))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。