我有一个小数据框,如下所示:
和一个元组,例如:(Timestamp('2009-02-27 09:45:00'), 'bloomberg', 'Chicago PMI')
我想在 DataFrame 上创建一个多重索引,以便它读取如下内容:
当尝试构造 MultiIndex 时:
MI=pd.MultiIndex(index, (0,0,0))
我遇到以下错误:
TypeError: Index(...) must be called with a collection of some kind, Timestamp('2009-02-27 09:45:00') was passed
这似乎意味着不允许有一个带有 MultiIndex 的 1 行 DataFrame?
我正在迭代 mysql 数据库来检索那些 1 行 DataFrame,然后将它们连接起来。尝试使用keysconcat 命令中的参数会产生另一组问题,因此希望可以使用 MultiIndex 创建此 1 行 DataFrame
下面是重建数据框的数据:
import pandas as pd
from pandas import Timestamp
dikt={'actual': {0: '34.2'}, 'previous': {0: '33.3'}, 'forecast': {0: '33.0'}, 'importance': {0: 81.300799999999995}}
pd.DataFrame(dikt, columns=['actual', 'forecast', 'previous', 'importance'])
设置
df = pd.DataFrame(
[[34.2, 33., 33.3, 81.3008]],
columns=['actual', 'forecast', 'previous', 'importance'])
tup = (pd.Timestamp('2009-02-27 09:45:00'), 'bloomberg', 'Chicago PMI')
Run Code Online (Sandbox Code Playgroud)
pd.MultiIndex用对象重新分配索引
df.index = pd.MultiIndex.from_tuples([tup])
df
Run Code Online (Sandbox Code Playgroud)
使用列表列表重新分配索引
df.index = [[i] for i in tup]
df
Run Code Online (Sandbox Code Playgroud)
使用这是完全可怕的方式rename
,这很糟糕,因为它TUPLE为每一行分配了相同的值
df.rename(index=lambda x: tup)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1376 次 |
| 最近记录: |