首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个数据集的csv文件组织到Pandas数据集列表中

将多个数据集的csv文件组织到Pandas数据集列表中
EN

Data Science用户
提问于 2021-03-30 02:08:54
回答 1查看 177关注 0票数 0

我有一个csv文件,包含计算流体力学(CFD)模拟的结果(我的csv文件的示例作为google驱动器链接附加;文件大小:1,392 as )。特别是,csv文件提供了关于多条流线的信息(流线的数量可能会达到1000条,视情况而定)。所有流线的所有数据都被背靠背地保存在csv文件中(因此没有空行或什么东西可以告诉我们一个流线的结束和下一个流线的开始)。我能区分流线的唯一方法是,当列"IntegrationTime“中的值为零时,它表示一个新流线的开始,直到我们在”IntegrationTime“列中达到另一个零,这是下一个流线的开始。

我需要读取这个csv文件,并将其数据组织成Pandas数据名称列表,例如:

代码语言:javascript
复制
streamlineList = [df_for_streamline_1, df_for_streamline_2, ...., df_for_streamline_N]

注意(这里的附加问题):这并不重要,但最好有:如果您查看我的csv文件的末尾,您会看到多个IntegrationTime为零的行(确切地说,是100行)。最好,我不需要在最后的数据帧列表中包括这些行。

有人能帮我做这件事吗?

https://drive.google.com/file/d/1lJhOJadGrno1C-KZOUqxV-KNkaOHIJNk/view?usp=sharing

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-03-30 02:34:58

通过逐行思考或逐条流线来解决这个问题是可能的.

对于每一个可以与IntegrationTime == 0.0匹配的流线,从数据帧中提取切片,并将幻灯片附加到输出列表中(如果它有多个数据点)。下面这样的代码应该解决这个问题:

代码语言:javascript
复制
import pandas as pd

# read the dataset
df = pd.read_csv("vel.csv")

# get row indexes where integrationtime is zero (start of each streamline)
start_index_list = df.loc[df['IntegrationTime']==0.0].index.values
stream_line_list = [] # the output list

for i in range(len(start_index_list)):
    # for each stream line, obtain the slice of the original dataframe that corresponds to it
    start_index = start_index_list[i]
    end_index = None
    if i+1 < len(start_index_list):
        end_index = start_index_list[i+1]-1
    stream_line_df = df.loc[start_index:end_index]
    # only append streamline with more than 1 data point
    if len(stream_line_df) > 1:
        stream_line_list.append(stream_line_df)
    
print(f"number of complete streamlines found: {len(stream_line_list)}")
```
代码语言:javascript
复制
票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/92327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档