import pandas as pd
import numpy as np
from lib_001_decorator_log_funcname import decorator_log_funcname
from env_config import *
csv_a = data_path + 'a.csv'
csv_b = data_path + 'b.csv'
csv_r = data_path + 'r.csv'
csv_t = data_path + 't.csv'
csv_p = data_path + 'p.csv'
csv_x = data_path + 'x.csv'
df = pd.DataFrame()
print(type(df))
df_x = pd.read_csv(csv_x)
df_p = pd.read_csv(csv_p)
@decorator_log_funcname
def _test_load_csv():
    global df
    df = pd.read_csv( csv_a, names=["col1","col2","col3"] )
    print(type(df))
    print(df)
@decorator_log_funcname
def _test_dump_csv():
    df.to_csv(csv_r)
@decorator_log_funcname
def _test_load_table_csv():
    df = pd.read_csv(csv_t, index_col='rowtitle' )
    print(df)
@decorator_log_funcname
def _test_load_panda_csv():
    global df
    df = pd.read_csv(csv_p)
    print(df)    
@decorator_log_funcname
def _test_dump_panda_csv():
    global df
    print(df)
    df.to_csv(csv_r, index=False)
@decorator_log_funcname
def _test_load_panda_csv_change_colname():
    global df
    lname = ["g1","g2","g3"]
    df = pd.read_csv(csv_p, header=0, names=lname )
    #? for del header, header=0
    # for add header, names=lname
    print(df)        
@decorator_log_funcname
def _test_df_count_col():
    pass
    global df_p
    print(len(df_p.columns.to_list()))
@decorator_log_funcname
def _test_df_count_row():
    global df_p
    row = df_p.count()
    print(type(row))
    print(row)
    print(row.to_list())
    rr = df_p['col1'].count()
    print(rr)
@decorator_log_funcname
def _test_df_insert_row():
    df1 = df_p
    dfi = pd.DataFrame( [[44,55,66],], columns=['col1','col2','col3'] )
    print('dfi==\n',dfi)
    xx = _func_df_insert_row(1,df1,dfi)
    print("xx==\n",type(xx), '\n', xx )
@decorator_log_funcname
def _func_df_insert_row(idx, df_base, df_insert):
    df1 = df_base[:idx]
    df2 = df_base[idx:]
    dff = df1.append(df_insert).append(df2).reset_index(drop=True) 
    return dff
@decorator_log_funcname
def _func_df_insert_row_at_0(df_base, ls_in):
    df_base.loc[-1] = ls_in
    df_base.index = df_base.index + 1
    print(type(df_base.index))
    print(df_base.index)
    print(df_base)
    df_base.sort_index( inplace=True)
    print(df_base)
    return df_base    
@decorator_log_funcname
def _test_df_update_append_row():
    df1 = df_p
    print(df1)
    df1.loc[0] = ['11','22','33']
    print(df1)
    df1.loc[2] = ['33','333','3333']
    print(df1)
@decorator_log_funcname
def _test_df_get_some_rows_as_sub_df():
    df1 = df_p
    print(df1)
    print(df1[0:1])
@decorator_log_funcname
def _test_df_del_row():
    global df_p
    df1 = df_p
    df2 = df1.drop([1])
    print(df2)
    print(df1)
    print(df_p)
    df1.drop([1], inplace=True)
    print(df1)
    pass
@decorator_log_funcname
def _test_df_update_col():
    df1 = df_p
    print(df1)
    df1['col1'] = 88
    print(df1)
    df1['col2'] = [55,44]
    print(df1)
    print(df1.index.stop)  #
@decorator_log_funcname
def _test_df_insert_col():
    global df_p
    print(df_p)
    df1 = df_p
    ll = [10,11]
    print(df1)
    df1.insert( loc=0, column='col0', value=ll)
    print(df1)
@decorator_log_funcname
def _test_df_del_col():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    df1.drop('col1', axis=1, inplace=True)
    print(df1)
@decorator_log_funcname
def _test_df_del_row_with_drop():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    df1.drop(1, axis=0, inplace=True)
    print(df1)
@decorator_log_funcname
def _test_df_del_col_with_del():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    del df1['col1']
    print(df1)    
@decorator_log_funcname
def _test_df_set_cell():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    df1.loc[1,'col2'] = 88
    print(df1)
@decorator_log_funcname
def _test_df_check_NaN():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    df1.loc[1,'col2'] = np.nan
    print(df1)
@decorator_log_funcname
def _test_df_get_sub_col():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    df2 = df1[['col1','col3']]
    print(df2)
@decorator_log_funcname
def _test_df_get_sub_row():
    pass
@decorator_log_funcname
def _test_df_set_col_type():
    global df_p
    print(df_p)
    df1 = df_p
    print(df1)
    print(df1.dtypes)
    df1['col1'] = df1['col1'].astype(float)
    print(df1)
    print(df1.dtypes)    
@decorator_log_funcname
def _test_df_sort_value():
    global df_p
    print(df_p)
    df1 = df_p.sort_values( 'col1', ascending=False )
    print(df_p)
    print(df1)
@decorator_log_funcname
def _test_df_get_header():
    print(df_p)
    head = df_p.columns.to_list()
    print(type(head))
    print(head)
    pass
@decorator_log_funcname
def _test_other():
    # global df
    # df = pd.read_csv(csv_x)
    # print(df)
    # print(len(df.columns.to_list()))
    # print(df.columns.to_list())
    #df.to_csv(csv_r, index=False)
    pass
@decorator_log_funcname
def _test( ):
    #_test_load_csv()
    #_test_dump_csv()
    #_test_load_table_csv()
    #_test_load_panda_csv()
    #_test_dump_panda_csv()
    #_test_load_panda_csv_change_colname()
    #_test_df_count_col()
    # _test_df_count_row()
    # _test_df_insert_row()
    # _func_df_insert_row_at_0(df_p,[100,101,102])
    # _test_df_update_append_row()
    #_test_df_get_some_rows_as_sub_df()
    # _test_df_del_row()
    #_test_df_update_col()
    #_test_df_insert_col()
    # _test_df_del_col()
    # _test_df_del_row_with_drop()
    # _test_df_del_col_with_del()
    # _test_df_set_cell()
    # _test_df_check_NaN()
    # _test_df_get_sub_col()
    _test_df_set_col_type()
    # _test_df_sort_value()
    #_test_df_get_header()
    # _test_other()
    
if __name__ == '__main__':
    _test()

python_test_5001_Moudle_pandas的更多相关文章

  1. Django商城项目笔记No.18商品部分-数据表创建

    数据库表设计 在电商中对于商品,有两个重要的概念:SPU和SKU SPU = Standard Product Unit (标准产品单位) SPU是商品信息聚合的最小单位,是一组可服用.易检索的标准化 ...

  2. day04记

    useGeneratedKeys useGeneratedKeys这个只在insert语句中有效,正常情况下useGeneratedKeys默认为false 当useGeneratedKeys为tru ...

随机推荐

  1. Navicat修改mysql表的字符集和排序规则

    突然想起前一阵子,在做javaweb后端debug的时候遇到的这个问题.由于在Dao层测试的时候没有尝试过中文的测试例,所以在Service写好后一直不报错但是无法插入数据库. 找了好久才发现是Mys ...

  2. Activiti-25张表对应的关系以及常用接口

    Activiti-25张表对应的关系以及常用接口 Activiti工作流25张表的含义: 其他表 act_evt_log: 流程事件日志记录表 act_procdef_info: 流程定义动态变更信息 ...

  3. JAVASE小练习 (今天做一个基于javase的银行ATM小练习)

    实现的功能有1,用户登录2,用户开户(基于用户登录)3,查询账户(基于用户登录)4,存款5,取款6,转账7,修改密码(只有三次确认密码的机会)8,退出登录9,注销 这个小例子可以让我们充分复习所学的j ...

  4. P8421 [THUPC2022 决赛] rsraogps

    \(\text{Solution}\) 肯定扫描线在考虑维护什么东西,假设 \(r\) 右移时可以暴力得到所有新值,发现需要维护区间历史版本和以及区间当前值之和 这三个操作对于一个数来说变化次数都是 ...

  5. CF884F - Anti-Palindromize

    我们发现这个题的数据范围."字符和位置匹配"再加上一条奇怪的限制,长得就很网络流,那么就考虑如何用网络流做. 考虑重新解释一下这个题面,其实就是:给定一个字符集和 \(n\) 个位 ...

  6. 🤗 PEFT: 在低资源硬件上对十亿规模模型进行参数高效微调

    动机 基于 Transformers 架构的大型语言模型 (LLM),如 GPT.T5 和 BERT,已经在各种自然语言处理 (NLP) 任务中取得了最先进的结果.此外,还开始涉足其他领域,例如计算机 ...

  7. Servlet简介和ServletContext

    0x01: 什么是Servlet? 是sun公司开发动态web的技术 实现了servlet接口的Java程序 0x02: Servlet的实现类有哪些? Servlet接口默认有两个实现类 HttpS ...

  8. leetcode 30. 串联所有单词的子串 【时间击败 90.28%】 【内存击败 97.44%】

    这道题让我从早做到晚-3--- 设len=words[0].length(). 一开始我按照words的顺序扩大区间,发现这样就依赖words的顺序.之后改成遍历s的所有长度为len*words.le ...

  9. elements-plus 自动导入

    elements-plus 自动导入(官网推荐导入方式) 根据官网安装依赖 npm install -D unplugin-vue-components unplugin-auto-import 配置 ...

  10. 安装centos,ubuntu系统

    安装centos系统 1.首先进入VMware,新建虚拟机,选择典型,然后下一步 2.稍后安装系统,下一步 3.因为此次安装的是centos7.9系统,因此版本选择7 64位,下一步 4.选择虚拟机的 ...