gpt4 book ai didi

python - 将 csv 数据加载到 pandas 数据帧后如何添加 MultiIndex?

转载 作者:行者123 更新时间:2023-12-01 08:09:01 26 4
gpt4 key购买 nike

在将 csv 数据加载到现有的 pandas 数据框中后,我尝试向其中添加额外的索引行。

假设我像这样加载数据:

columns = ['Relative_Pressure','Volume_STP']
df = pd.read_csv(StringIO(contents), skiprows=4, delim_whitespace=True,index_col=False,header=None)
df.columns = columns

其中contents是csv格式的字符串。生成的 DataFrame 可能如下所示:

Imported csv data

为了清楚起见,我现在想向 DataFrame 添加额外的索引行,如下所示 here :

MulitIndex dataframe

但是,在链接中,这些多个索引行是在创建 DataFrame 时立即生成的。我想添加例如unit 的行或 descr 到列。

我怎样才能做到这一点?

最佳答案

您可以通过专门创建索引,然后将其与读取数据分开分配给列,从而在列上创建MultiIndex

我将使用 link you provided 中的示例。第一种方法是在创建数据框时创建 MultiIndex:

df = pd.DataFrame({('A',1,'desc A'):[1,2,3],('B',2,'desc B'):[4,5,6]})
df.columns.names=['NAME','LENGTH','DESCRIPTION']
df

NAME A B
LENGTH 1 2
DESCRIPTION desc A desc B
0 1 4
1 2 5
2 3 6

如上所述,这不是您所追求的。相反,您可以创建数据框(例如,从您的文件中),然后从一组列表中创建MultiIndex,然后将其分配给列:

df = pd.DataFrame({'desc A':[1,2,3], 'desc B':[4,5,6]})

# Output
desc A desc B
0 1 4
1 2 5
2 3 6

# Create a multiindex from lists
index = pd.MultiIndex.from_arrays((['A', 'B'], [1, 2], ['desc A', 'desc B']))

# Assign to the columns
df.columns = index


# Output
A B
1 2
desc A desc B
0 1 4
1 2 5
2 3 6


# Name the columns
df.columns.names = ['NAME','LENGTH','DESCRIPTION']

# Output
NAME A B
LENGTH 1 2
DESCRIPTION desc A desc B
0 1 4
1 2 5
2 3 6

还有其他方法可以构造 MultiIndex,例如 from_tuplesfrom_product。您可以阅读更多关于 Multi Indexes in the documentation

关于python - 将 csv 数据加载到 pandas 数据帧后如何添加 MultiIndex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55378142/

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