DataFrame常用操作(持续更新)

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列没了)
'''
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值