读取多个csv文件(大小mxm)并作为n维数组(大小nxmxm)加载(不串联)

2024-10-02 10:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个程序,需要将大量csv文件(数千个)加载到一个数组中。你知道吗

csv文件的尺寸是45x100,我想创建一个尺寸为nx45x100的三维数组。目前,我正在使用pd.read\U csv文件()加载每个csv文件,然后使用np.数组(). 然后我使用np.数组(data_0,data_1,…,data_n),我得到一个具有所需维度的三维数组。你知道吗

虽然很管用,但很乏味。有没有任何方法可以做到这一点,而不单独读取和处理每个csv文件?你知道吗

   #this is my current code
   import numpy as np
   import pandas as pd
   from pandas import Series, DataFrame

   mBGS5L = pd.read_csv("strain5.csv") #45x100 
   mBGS8L = pd.read_csv("strain8.csv")
   mBGS10L = pd.read_csv("strain10.csv")

   mBGS5L_ = np.array(mBGS5L)
   mBGS8L_ = np.array(mBGS8L)
   mBGS10L_ = np.array(mBGS10L)

   mBGS = np.array([mBGS5L_,mBGS8L_,mBGS10L_])
   #to which mBGS.shape returns a 3x45x100 array'''

注意:我已经检查了其他stackoverflow链接加载多个csv文件到一个数据帧,其中我了解了glob获得所有csv文件的列表我需要。但我的问题是,使用glob并连接csv文件会返回一个列表,而不是一个3d数组——我无法将其转换为numpy数组,因为它返回一个错误

   from glob import glob
   strain = glob("strain*.csv")
   df= [pd.read_csv(f) for f in strain]
   df_ = np.asarray(df)
   #this returns an error: cannot copy sequence with size 45 to array axis with dimension 30

任何帮助都将不胜感激。谢谢


Tags: 文件csvimportdfreaddatanp数组
1条回答
网友
1楼 · 发布于 2024-10-02 10:30:45

首先需要将dataframesin转换为mxm数组。请参阅下面的代码

from glob import glob
import numpy as np
strain = glob("strain*.csv")
df = [pd.read_csv(f).values for f in strain]
df_ = np.asarray(df)

相关问题 更多 >

    热门问题