0

我想知道处理存储/读取项目列表的正确方法是什么,例如以下处理摇滚明星的示例,其中已知列表包含 hdf5 的最大数量的值:

Date_of_Birth
Bands[] - where the maximum number of bands is 10
Siblings[] - where the maximum number of siblings is 6
Date_of_Death

所有这些都是列名。

ValueError: cannot reindex from a duplicate axis我考虑过的一种方法是使用重复的列名,但结果却给出了错误 ( )。否则,我能做的就是 haveBands 1Bands 2……但这会使检索和查询变得很麻烦。有没有更好的办法?任何帮助将不胜感激!

4

1 回答 1

0

对于这样的事情,你实际上想要列出带和兄弟的每一列,我会尝试使用多索引

假设你有一个你用这些列调用 df 的数据框,调用会 df.columns吐出类似Int64Index([dob, band_1, band_2], dtype='int64'). 您可以通过执行此操作将索引重建为可以一次抓取所有波段的内容...

编辑找到了一种方法来做'部分'MultiIndex

df.columns = pd.MultiIndex.from_tuples([('dob',''),('bands','band_1'),('bands','band_2')])

也是构建元组列表的提示 - 您可以在现有列上添加一堆列表推导......

 [('band',each) for each in df.columns[df.columns>1].apply(lambda x: re.search("band",x)]
 #etc
于 2014-08-11T01:53:23.537 回答