CSV数据的处理(增加行列索引,提取,构造,保存)

本文介绍如何使用Python的pandas库进行CSV数据处理,包括数据读取、解析、切片及构造等操作,并演示了如何设置数据索引、提取特定列和行数据、构造新数据集及保存修改后的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CSV数据的处理:

1.数据行和列索引的设置。

2.数据的解析代码和时间的处理。

3.从原始数据中切片数据(提取部分数据)。

4.行列数据的提取(含多行数据)

5.数据的构造。

# hanbb
# come on!!!
import pandas as pd
import csv

# 标题的设置
column_title = ['时间','上海A股','上海A股最新值','股票家数','亏损家数','近一月数据','近三月数据','近六月数据','近一年月数据',
                '深圳A股','深圳A股最新值','深圳A股股票家数','深圳A股亏损家数','深圳A股近一月数据','深圳A股近三月数据','深圳A股近六月数据','深圳A股近一年月数据',
                '沪深A股板块名称','沪深A股最新值','沪深A股股票家数','沪深A股亏损家数','沪深A股近一月数据','沪深A股近三月数据','沪深A股近六月数据','沪深A股近一年月数据',
                '深市主板板块名称','深市主板最新值','深市主板股票家数','深市主板亏损家数','深市主板近一月数据','深市主板近三月数据','深市主板近六月数据','深市主板近一年月数据',
                '中小板板块名称','中小板最新值','中小板股票家数','中小板亏损家数','中小板近一月数据','中小板近三月数据','中小板近六月数据','中小板近一年月数据',
                '创业板板块名称','创业板最新值','创业板股票家数','创业板亏损家数','创业板近一月数据','创业板近三月数据','创业板近六月数据','创业板近一年月数据',]

# 部分数据的截取
guxilv = pd.read_csv("E:\\download2\\guxilv.csv",encoding="gbk",names=column_title,index_col='时间',usecols=[0,1,3],parse_dates=True)   # usecols 提取部分数据
print(guxilv)

# 数据的读取,解码,设置列标题,设置行表标题
guxilv = pd.read_csv("E:\\download2\\guxilv.csv",encoding="gbk",names=column_title,index_col='时间')  # 需要设置编码,否则打不开

# column 标题
print(guxilv.columns)

# 时间设置为index
print(guxilv.index)

# 提取列信息
print(guxilv['中小板最新值'])                   # 带时间索引
print(guxilv['中小板最新值'].values)            # 只有值
print(guxilv[['中小板最新值','创业板最新值']])  # 两列数据

# 提取行信息
print(guxilv.ix['2017-12-06'])

# 数据的构造
new_info = pd.DataFrame({'shA':guxilv['上海A股最新值']})
new_info = new_info.join(pd.DataFrame({'szA':guxilv['深圳A股最新值']}))
# new_info = new_info.join(pd.DataFrame({'shA':guxilv['深圳A股最新值']}))
# new_info = new_info.fillna(method='ffill')
print(new_info)

 

数据的保存

1.将新修改的数据保存早新的文件中

import pandas as pd

# 标题的设置
column_title = ['时间','上海A股','上海A股最新值','股票家数','亏损家数','近一月数据','近三月数据','近六月数据','近一年月数据',
                '深圳A股','深圳A股最新值','深圳A股股票家数','深圳A股亏损家数','深圳A股近一月数据','深圳A股近三月数据','深圳A股近六月数据','深圳A股近一年月数据',
                '沪深A股板块名称','沪深A股最新值','沪深A股股票家数','沪深A股亏损家数','沪深A股近一月数据','沪深A股近三月数据','沪深A股近六月数据','沪深A股近一年月数据',
                '深市主板板块名称','深市主板最新值','深市主板股票家数','深市主板亏损家数','深市主板近一月数据','深市主板近三月数据','深市主板近六月数据','深市主板近一年月数据',
                '中小板板块名称','中小板最新值','中小板股票家数','中小板亏损家数','中小板近一月数据','中小板近三月数据','中小板近六月数据','中小板近一年月数据',
                '创业板板块名称','创业板最新值','创业板股票家数','创业板亏损家数','创业板近一月数据','创业板近三月数据','创业板近六月数据','创业板近一年月数据',]

# 数据的读取
guxilv = pd.read_csv("E:\\download2\\guxilv.csv",encoding="gbk",names=column_title,index_col='时间',parse_dates=True)   # usecols 提取部分数据

# 数据的存取
guxilv.to_csv("E:\\download2\\guxilv2.csv")

print(guxilv)

 


 

转载于:https://www.cnblogs.com/hanbb/p/7994617.html

### 如何将CSV文件转换为H5AD格式 为了实现从CSV文件到H5AD格式的转换,可以使用`anndata`库中的功能来创建一个AnnData对象,并将其保存为H5AD文件。以下是具体的实现方法: #### 创建AnnData对象并保存为H5AD文件 通过加载CSV文件的数据作为矩阵输入,并附加其他元数据(如果有的话),可以构建一个完整的AnnData对象。 ```python import pandas as pd import anndata as ad # 加载基因表达数据 (假设是一个m行n列的矩阵,其中m表示细胞数,n表示基因数) expression_data = pd.read_csv('expression_data.csv') # 如果存在观测信息和变量信息,则分别加载它们 observations = pd.read_csv('observations.csv') # 行注释信息 variables = pd.read_csv('variables.csv') # 列注释信息 # 构建AnnData对象 adata = ad.AnnData( X=expression_data.values, # 基因表达矩阵 obs=observations.set_index(observations.columns[0]), # 设置行索引 var=variables.set_index(variables.columns[0]) # 设置列索引 ) # 将AnnData对象保存为H5AD文件 adata.write_h5ad('output_file.h5ad') ``` 以上代码片段展示了如何将存储在不同CSV文件中的基因表达数据、观测信息以及变量信息组合成一个单一的AnnData对象,并最终保存为H5AD格式[^1]。 #### 单一CSV文件的情况 如果所有的数据都存储在一个单独的CSV文件中,可以通过以下方式处理: ```python import pandas as pd import anndata as ad # 加载综合数据 combined_data = pd.read_csv('combined_data.csv') # 提取基因表达矩阵和其他元数据 X = combined_data.drop(columns=['Celltype']).values # 删除额外的元数据列得到表达矩阵 obs = pd.DataFrame(combined_data['Celltype'], columns=['Celltype']) # 获取行注释信息 var = pd.DataFrame(combined_data.columns[:-1], columns=['Gene']) # 获取列注释信息 # 构建AnnData对象 adata = ad.AnnData(X=X, obs=obs.reset_index(drop=True), var=var.set_index('Gene')) # 保存为H5AD文件 adata.write_h5ad('output_combined.h5ad') ``` 此部分适用于当所有数据被整合到单个CSV文件时的情形[^4]。 --- ### 注意事项 - CSV文件应具有清晰的结构,尤其是对于基因表达矩阵而言,其行列需对应于特定实体(如细胞或基因)。 - 使用`set_index()`函数设置合适的索引来匹配AnnData对象的要求。 - 若某些元数据缺失,可省略对应的参数传递给`AnnData`构造器。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值