导入 csv, excel 文件或 pandas.DataFrame 到 awkward 数组

pandas 的操作很不习惯,还是喜好 numpy 那种操作方式
awkward 正好符合这个要求。

import awkward as ak
import csv
import pandas


def load_ak_from_csv(csv_file):
    '''
    从 csv 中载入为 awkward 数组
    :param csv_file:
    :return:
    '''
    if isinstance(csv_file, str):
        csv_file = open(csv_file, 'r', encoding='utf8')

    reader = csv.reader(csv_file)
    rows = []
    for row in reader:
        rows.append(row)

    arr = ak.Array(rows)
    return arr



def load_ak_from_pandas(table: pandas.DataFrame):
    '''
    从 pandas DataFrame 中载入为 awkward 数组
    :param table:
    :return:
    '''
    shape = table.shape

    rows = []
    for y in range(shape[0]):
        rows.append(table.iloc[y].tolist())

    arr = ak.Array(rows)
    return arr


def load_ak_from_excel(excel_file, sheet_name: Union[str,int]=0, dtype=str, **pandas_kwargs):
    '''
    从 excel 中载入为 awkward 数组
    :param excel_file: 
    :param sheet_name: 要载入的表号或表名
    :return:
    '''
    table = pandas.read_excel(excel_file, sheet_name=sheet_name, dtype=dtype, **pandas_kwargs)
    arr = load_ak_from_pandas(table)
    return arr


if __name__ == '__main__':
    f = r'a.xlsx'
    d = load_ak_from_excel(f)
    print(d)

    f = r'a.csv'
    d = load_ak_from_csv(f)
    print(d)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值