一、文件读取和写入
- pandas读取文件
相关参数pd.read_csv 读取csv文件 pd.read_excel 读取xlsx文件 pd.read_table 读取txt文件
header=None表示第一行不作为列名
index_col表示把某些列或几列作为索引
usecols表示读取列的集合,替换为所有的列,
parse_dates表示需要转换为时间的列
nrows表示读取的数据行数 - 数据写入
df_csv.to_csv('data/my_csv_saved.csv', index=False) df_excel.to_excel('data/my_excel_saved.xlsx', index=False)
数据写入时,最常用的操作是把index置为False,目的是保存时去除索引
pandas没有to_table函数,但是to_csv可以保存为txt文件,并且允许自定义分隔符
二、 基本的数据结构
pandas有两种基本的数据存储结构,存储一维用 Series ,二维用DataFrame 。
- series
- Series一般由四个部分组成,分别是序列的值data,索引index,存储类型dtype,序列的名字name。其中,索引也可以指定它的名字,替换为空。
s = pd.Series(data = [100, 'a', {'dic1':5}], index = pd.Index(['id1', 20, 'third'], name='my_idx'), dtype = 'object', name = 'my_name') """ my_idx idl 100 20 a third {'dict': 5} Name: my_name, dtype: object """
- Series一般由四个部分组成,分别是序列的值data,索引index,存储类型dtype,序列的名字name。其中,索引也可以指定它的名字,替换为空。
- DataFrame
data = [[1, 'a', 1.2], [2, 'b', 2.2], [3, 'c', 3.2]] df = pd.DataFrame(data=data, index= ['row_%d'%i for i in range(3)], columns=['col_0', 'col_1', 'col_2'] ) print(df) """ col_0 col_1 col_2 row_0 1 a 1.2 row_1 2 b 2.2 row_2 3 c 3.2 """
三、常用基本函数
- head, tail 函数分别表示返回表或者序列的前 n 行和后 n 行,其中 n 默认为 5
- nfo, describe 分别返回表的信息概况和表中数值列对应的主要统计量
- 唯一值函数 unique 和 nunique 可以分别得到其唯一值组成的列表和唯一值的个数。value_counts 可以得到唯一值和其对应出现的频数
- 替换函数 replace 可以通过字典的构造,来替换
res ['Gender'].replace({'Female':0, 'Male':1}).head() res ['Gender'].replace(['Female', 'Male'], [0, 1]).head()
- 排序函数
分为值排序和索引排序,分别对应的方法是sort_values和sort_index
- apply方法
常用于DateFrame的行或者列迭代
re = res[['Height', 'Weight']]
def my_mean(x):
res = x.mean()
return res
print(re .apply(my_mean))
"""
Height 163.218033
Weight 55.015873
dtype: float64
"""
re.apply(lambda x:x.mean()) # 匿名函数的使用
四、滑窗对象
五、练习题
- 思路:提取出来,求和、验证
res = pd.read_csv('D:\\Git\\pandas\\numpy&pandas\\pokemon.csv') if_true = (res[['HP', 'Attack', 'Defense', 'Sp. Atk', 'Sp. Def', 'Speed']]) if_true = if_true.sum(1) #print(if_true) """ 0 318 1 405 2 525 3 625 4 309 ......... """ a = (if_true != res['Total']).mean() print(a) """ 0.0 """