pandas数据的读取与保存
import pandas as pd
path = 'example.xlsx'
# 读取Excel文件
df = pd.read_excel(path)
# 查看数据
print(df)
# 修改数据
df['新列'] = df['某列'] * 10
# 保存到新的Excel文件
df.to_excel('modified_example.xlsx', index=False)
参数及其解读
path:读取的文件路径
sheet_name:
str:传入要读工作表的名称,
【例】sheet_name = ‘sheet1’
int:传入要读工作表的顺序索引,从0开始;
【例】读取Excel的第二个sheet页 该参数sheet_name = 1
list:传入列表指定读取多个sheet页,可全int/str也可混合使用
【例】sheet_name = [0, 1, ‘sheet3’] 读取多个sheet页返回key为sheet表名、value为DataFrame的字典
None:默认读取Excel中所有的sheet页 返回DataFrame字典
header:
header = int、list、None Default = 0
该参数用于指定DataFrame数据的列标签,默认为0,即把sheet页第一行看作每一列的表头(列标签)
int:使用该行作为列表头
【例】header = 1 表示把第二行看作列标签 (其他不常用 不展开解释)
nrows:
nrows = 10
只读取前10行
index_col
:将某一列设置为索引列。skiprows
:跳过指定的行。na_values
:指定哪些值应被视为缺失值(NaN)。dtype
:指定列的数据类型。
数据处理
DataFrame格式下常用函数:
iloc:只使用索引来对表格进行处理
【例】kt_data = data.iloc[:,1:10].reset_index(drop=True)
reset_index:重置索引,drop表示是否丢弃原索引
shape:返回表格大小,(row,col)
【例】(row,col ) = kt_data.shape
dropna:
dropna()函数是pandas库中DataFrame和Series对象的一个方法,其基本用法如下:
axis:指定要删除的行还是列,默认为0表示删除行,1表示删除列。
how:指定删除缺失值的条件,可选值为'any'和'all'。'any'表示只要存在缺失值就删除,'all'表示只有当所有值都是缺失值时才删除。
thresh:指定一个阈值,表示要保留的行或列中至少有多少个非缺失值。
subset:指定要考虑哪些列或行。
inplace:是否在原地修改DataFrame,默认为False,表示不修改原DataFrame,而是返回一个新的DataFrame。
import pandas as pd
# 创建一个包含缺失值的DataFrame
df = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [None, 2, 3, 4],
'C': [1, 2, 3, None]
})
# 删除包含缺失值的行
df_dropped_rows = df.dropna()
print("删除包含缺失值的行:")
print(df_dropped_rows)
# 删除包含缺失值的列
df_dropped_cols = df.dropna(axis=1)
print("\n删除包含缺失值的列:")
print(df_dropped_cols)
输出
删除包含缺失值的行:
A B C
1 2.0 2.0 2.0
删除包含缺失值的列:
Empty DataFrame
Columns: []
Index: [0, 1, 2, 3]
定制dropna()函数的行为
通过调整dropna()函数的参数,我们可以更精确地控制缺失值的处理方式。
使用how参数控制删除条件:
'any':只要存在缺失值就删除。
'all':只有当所有值都是缺失值时才删除。
使用thresh参数指定非缺失值的阈值:
例如,thresh=2表示要保留至少有两个非缺失值的行或列。
使用subset参数指定要考虑的列或行:
通过传递列名或行索引的列表,可以限制dropna()函数的作用范围。
表格拼接:
pd.concat([table1,table2],ignore_index= True,axis = 1):
objs
:要连接的DataFrame或Series对象序列,可以是一个列表或字典。axis
:连接的轴,默认为0,表示按行连接。join
:连接方式,默认为’outer’,表示使用并集的方式进行连接。ignore_index
:是否忽略连接后结果中的索引,默认为False。import pandas as pd # 创建第一个DataFrame df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # 创建第二个DataFrame df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]}) # 使用concat函数进行行连接 df_concat_rows = pd.concat([df1, df2]) print(df_concat_rows) """ A B 0 1 3 1 2 4 0 5 7 1 6 8 """ # 使用concat函数进行列连接 df_concat_cols = pd.concat([df1, df2], axis=1) print(df_concat_cols) """ A B A B 0 1 3 5 7 1 2 4 6 8 """ # 使用ignore_index参数 df_concat_ignore_index = pd.concat([df1, df2], ignore_index=True) print(df_concat_ignore_index) """ A B 0 1 3 1 2 4 2 5 7 3 6 8 """