pandas学习

文件读取与保存技巧

一.循环读取同一个文件夹中的所有excel,并合并成一个dataframe

import os
import pandas as pd
path = r'你的文件路径'
files = os.listdir(path)
#读取所有execl文件并拼接成一个dataframe
def read_excel(path):
    df = pd.DataFrame()
    for file in os.listdir(path):
        #若对文件名还有其他约束在此处添加,e.g. and file.startswith("升级")
        if file.endswith(".xlsx") :
            #拼接所有符合要求的excel文件
            df = pd.concat([df, pd.read_excel(path + '\\' + file,header=None,usecols=[1])],axis=1,ignore_index=True)
    return df



df_test = read_excel(path)

二.循环读取同一个文件夹中的所有csv,并合并成一个dataframe

def read_txt(path):
    df = pd.DataFrame()
    for file in os.listdir(path):
        #若对文件名还有其他约束在此处添加,e.g. and file.startswith("升级")
        if file.endswith(".csv"):
            #拼接所有符合要求的csv文件
            df = pd.concat([df, pd.read_csv(
                path + '\\' + file)], axis=1, ignore_index=True)
    return df

path='你的文件路径'

a=read_txt(path)
a
    

pandas运算

列名和索引相同的两个dataframe运算

  1. 列名和索引相同的两个dataframe,对应的值相减与相除。得到的dataframe再取大于值0.8的数的个数

#df_pred-df_Truth
a = (abs(df_pred.sub(df_Truth))).div(df_Truth)#(绝对值|df_pred-df_Truth|)/df_Truth
df_08=df[(abs(df_pred.sub(df_Truth))).div(df_Truth)>0.8].count()
df_08_df = pd.DataFrame(df_08,columns=['列名'])
df_08_df

pandas条件选择

  1. panda根据多个条件选择每个列符合条件的值的数量

#df_Truth、df_pred_positive1、df_pred_negative1都是索引、列名相同的dataframe
#例如现在要找到df_Truth矩阵中,每一列中的每个值大于df_pred_positive1或者小于df_pred_negative1的数量
#!!!注意!!!    条件语句只能使用&和|,不能使用and和or
df = (df_Truth > df_pred_positive1) | (df_Truth < df_pred_negative1)
aaa=df_Truth[df].count()
# resultdf = pd.DataFrame()
# for num in range(sigma1df.shape[1]):
#    countdf = pd.DataFrame(sigma1df.iloc[:,[num]].value_counts(),columns=[list(sigma1df.iloc[:,[num]].columns)])
#    resultdf = pd.concat([resultdf,countdf],axis=1)
# resultdf
aaa=pd.DataFrame(aaa,columns=['列名'])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值