【发布时间】:2021-06-30 22:02:03
【问题描述】:
我有多个数据帧 df1、df2、df3 等到 df10。数据框有 135 列。每个看起来像这样:
| time | a | b | c | d | e | f | g |
|---|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
我想将它们排列在一个数据框中并将它们并排堆叠在一起,但将它们的 df 名称作为标题。意思是一个标题 df1 具有所有这些列名称(时间,a,b ...)及其下的值等等。在这里看到这个例子Constructing 3D Pandas DataFrame 我尝试了以下代码
list1=['df1', 'df2', 'df3', 'df4', 'df5','df6', 'df7', 'df8', 'df9',
'df10']
list2=[]
for df in list1:
for i in range(135):
list2.append(df)
A=np.array(list2)
B = np.array([df1.columns]*10)
C=pd.concat([df1,df2,df3,df4,df5,df6,df7,df8,df9,df10], axis=1)
C=C.values.tolist()
C=np.array(C)
df = pd.DataFrame(data=C.T, columns=pd.MultiIndex.from_tuples(zip(A,B)))
print(df)
但每次我遇到错误
TypeError: unhashable type: 'numpy.ndarray'
我有一列时间:时间采用 hhmm 格式。 01:00,01:01 以此类推。我尝试从数据框中删除该列,但得到相同的错误。我该如何解决这个问题?有人可以帮忙吗?
【问题讨论】:
标签: python pandas dataframe numpy