数据处理任务——知识点总结

前言

如何使用pandas处理Excel表格数据呢?

在生活和科研任务中,我们经常需要处理大量的Excel数据。面对几W条数据,甚至几十万条数据,在Excel中操作是远远不够的。这时候就要发挥Python的威力了!

复习总结

1.读取数据
# 读取Excel数据
def read_file(file_name):
    # 类似的读取.csv文件,使用read_csv
    # 读取sql文件,使用read_sql
    # 读取html文件,使用read_html
    df = pd.read_excel(file_name)
    print(df)
    return df
2.写入数据
# 写入数据
def write_data(df):
    save_name = 'H691_dealed6.xlsx'
    # 类似的有to_html、to_sql、to_csv
    df.to_excel(save_name)
3.小结pandas导入导出

在这里插入图片描述

4.给dataframe新增一列
def select_data(df):
    # 给所有数据新加一列,新的一列名称叫做趟次
    # 如何算df的行数   df.shape[0]或者是len(df)
    # 直接df['新列名'] = pd.Series(要填充的数据,index=填充原df,行的范围)
    df['趟次'] = pd.Series([0] * (df.shape[0]), index=np.arange(len(df)))
    print(df)
示例:
# 在DataFrame上新加一列
df['E'] = pd.Series([1, 2, 3, 4, 5, 6], index=pd.date_range('20220701', periods=6))
print("-" * 50)
print(df)

在这里插入图片描述

5.如何逐行迭代dataframe
# 测试迭代df
def test_loop(df):
    for i in range(len(df)):
        # 迭代每一行
        print(df.loc[i])
    print("&" * 50)
    # df.shape[0]代表df行数、df.shape[1]代表df列数
    for j in range(df.shape[0]):
        # 迭代每行的第一列
        print(df.iloc[j, 1])
示例:
# 根据位置进行筛选
print("-" * 50)
print(df.iloc[3])

在这里插入图片描述

print("-" * 50)
print(df.iloc[[1,3,5], 1:3])

在这里插入图片描述

6.如何计算两个时间点之间的时间间隔
(1)我们这里以Timestamp类型为例
# 测试df中日期数据类型
def time_test(df):
    print(df.iloc[0, 0])
    print(type(df.iloc[0, 0]))
    print("时间差格式为")
    print(df.iloc[1642, 0]-df.iloc[568, 0])

在这里插入图片描述

(2)时间差转化为秒的格式
# 测试df中日期数据类型
def time_test(df):
    print(df.iloc[0, 0])
    print(type(df.iloc[0, 0]))
    print("时间差格式为")
    print(df.iloc[1642, 0]-df.iloc[568, 0])
    print("时间差转化为秒的格式")
    print((df.iloc[1642, 0]-df.iloc[568, 0]).total_seconds())

在这里插入图片描述

7.按条件删除dataframe的行
(1)drop函数

我们可以将要删除的行索引找到,然后使用drop函数进行删除。

	print(final_df)
 	# 按行索引进行删除,删除第0行
    end_df = final_df.drop(0)
    print("-" * 50)
    print(end_df)

在这里插入图片描述
删除列也是一样的,直接传入列的名字,使用drop函数进行删除!(注意指定axis参数)

    print(final_df)
    # 删除指定列,axis参数=1,表示列
    # 删除指定行时,axis可以不用专门指定,因为axis默认为0
    end_df = final_df.drop('坡度', axis=1)
    print("-" * 50)
    print(end_df)

在这里插入图片描述

(2)直接进行筛选

参考这篇博客:https://blog.csdn.net/sigtem/article/details/81735242?spm=1001.2014.3001.5506

 	print(final_df)
    # 相当于直接筛选掉,趟次列为1的所有行数据
    end_df = final_df[df['趟次'] != 1]
    print("-" * 50)
    print(end_df)

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值