Dataframe是一种表格化数据结构,在数据分析和处理中很常用。Pandas是一种Python数据分析工具,提供了DataFrame数据结构。
目录
文件读取存储
读取CSV文件
import pandas as pd
file_name = "./data.csv"
csv_data = pd.read_csv(file_name)
# csv_data = pd.read_csv(file_name, sep="\t") sep指定分割符,默认为","
# csv_data = pd.read_csv(file_name, header=None) header指定表头为第几行,默认为"0",即第0行为表头,没有表头可把设为None
存储CSV文件
import pandas as pd
file_name = "./result.csv"
result_df.to_csv(file_name, encoding='gbk')
读取excel文件
import pandas as pd
file_name = "./data.xlsx"
csv_data = pd.read_excel(file_name) #sheet_name默认为"Sheet1",设置为None则读所有的表单
# csv_data = pd.read_csv(file_name, sep="\t") sep指定分割符,默认为","
# csv_data = pd.read_csv(file_name, header=None) header指定表头为第几行,默认为"0",即第0行为表头,没有表头可把设为None
存储excel文件
import pandas as pd
file_name = "./result.xlsx"
result_df.to_excel(file_name, sheet_name="result1", columns=["列1","列2"], index=False)
数据显示
输出数据前几行
df.head() # 默认输出前5行
# df.head(10) # 指定输出前10行
输出数据最后几行
df.tail() # 默认输出最后5行
# df.tail(10) # 指定输出最后10行
查看行列数
my_df.shape
DataFrame操作
dataFrame数据转列表
data_list = my_df.values.tolist()
列表转dataFrame数据
import pandas as pd
my_df = pd.DataFrame(data_list, columns=["列名1","列名2","列名3","列名4"]) # columns后接列名作为dataFrame的首行
新增列
# 为my_df新增‘labels’列,列为numpy格式,且一行为一个列表
label = np.array([[x] for x in label_data])
my_df['labels']=label
两个dataFrame数据拼接
import pandas as pd
final_df = pd.concat([my_df1, my_df2], axis=0) # 按行凭借,两个dataFrame数据的列数相同
对dataFrame数据按行按列应用函数
def func(col): #自定义函数
pass
my_df.apply(func) #对数据进行列级别的应用
my_df.apply(func, axis=1) #对数据进行行级别的应用
my_df["列名"]=my_df["列名"].apply(func) #对数据指定列进行列级别的应用
修改dataFrame的列名
df.rename(columns = {"A":"C", "B":"D", inplace=True} # 用字典的方式表示重命名的映射关系,将原列名A改为C,原列名B改为D
dataFrame给空的单元格赋值
df = df.fillna("") # 对所有nan值赋值“”
dataFrame访问的列可能不存在,以防报错
columns_names = ["A", "B", "C", "D"]
df = df.reindex(columns = columns_names)
'''
假设df原先的列有 A B
直接访问df的 A B C D列会报错,因为C D两列不存在
通过df.reindex df新增列 C D, 并默认值为nan,df的列变成 A B C D
这样访问就不会报错了
假设df原先的列有 A B E
通过df.reindex df新增列 C D, 并默认值为nan,df的列变成 A B C D (注意: E列没了)
'''