gpt4 book ai didi

python - 使用 pandas、python 组织列和标题数据

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:58 26 4
gpt4 key购买 nike

我正在尝试使用 Numpy 而不是 Matlab,但我对 Python 还比较陌生。

我当前的挑战是以合理的方式导入多个文件中的数据,以便我可以使用和绘制它。数据按列组织(温度、压力、时间等,每个文件都是一个测量周期),我认为 pandas 可能是导入数据的最佳方式。我正在考虑为每个文件使用顶级描述符,并为每列使用子描述符。想做这样的事情。 Reading Multiple CSV Files into Python Pandas Dataframe

问题是我想保留并使用标题中的一些数据(例如用于绘图)。没有列标题,但有有关数据测量的一般信息,如下所示:

 Flight ID: XXXXXX
Date: 01-27-10 Time: 5:25:19
OWNER
Release Point: xx.304N xx.060E 11 m
Serial Number xxxxxx
Surface Data: 985.1 mb 1.0 C 100% 1.0 m/s @ 308 deg.

我真的不知道如何以与数据框结合时有意义的方式提取和存储数据。想到也许是一本字典,但我不确定如何有效地分割数据,因为没有一致的分隔符。有什么想法吗?

最佳答案

看起来有人正在使用 radio 探空仪......

当我提取 radio 探空仪数据时,我通常将其放入多级索引数据帧中。级别可以有各种形式和顺序,但诸如 FLIGHT_NUM、DATE、ALTITUDE 等之类的内容是有意义的。另外,在处理探空仪数据时,我也需要一些不一定需要存储在数据框中的附加信息,因此我将其存储为附加属性。如果我要解析您的文件然后存储它,我会按照以下方式做一些事情(是的,可以进行一些修改来“改进”这一点):

import pandas as pd

with open("filename.csv",'r') as data:
header = data.read().split('\n')[:5] # change to match number of your header rows
data = pd.read_csv(data, skiprows=6, skipinitialspace=True, na_values=[-999,'Infinity','-Infinity'])

# now you can parse your header to get out the necessary information
# continue until you have all the header info you want/need; e.g.
flight = header[0].split(': ')[1]
date = header[1].split(': ')[1].split('')[0]
time = header[1].split(': ')[2]

# a lot of the header information will get stored as metadata for me.
# most likely you want more than flight number and date in your metadata, but you get the point.
data.metadata = {'flight':flight,
'date':date}

我假设您的文件中有一个日期/时间列(此处称为“日期”),因此您可以使用它来重新索引您的数据框。如果您选择在多级索引中使用不同的变量,则适用相同的方法。

new_index  = [(data.metadata['flight'],r) for r in data.dates]
data.index = pd.MultiIndex.from_tuples(new_index)

您现在拥有一个多级索引数据框。

现在,关于您的“元数据”。 EdChum 提出了一个很好的观点,即如果您复制“数据”,您将不会复制元数据字典。另外,如果您通过 data.to_pickle 将“数据”保存到数据帧,您将丢失元数据(稍后会详细介绍)。如果您想保留元数据,您有几个选择。

  1. 按航类保存数据。这将允许您存储每个航类文件的元数据。

  2. 假设您希望在一个保存的文件中包含多个航类:您可以在数据框中添加一个附加列来保存该信息(即另一列用于航类号,另一列用于表面温度等)。这将增加您保存的文件的大小。

  3. 假设您希望在一个保存的文件中包含多个航类(选项 2):您可以使元数据字典按航类号“键入”。例如

    data.metadata = {FLIGHT1:{'日期':日期}, 航类2:{'日期':日期}}

现在存储元数据。检查我的 IO 类如何在发布的 h5 文件中存储附加属性 here .

您的问题非常广泛,因此您得到了广泛的答案。我希望这可以帮到你。

关于python - 使用 pandas、python 组织列和标题数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766446/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com