如何在dask数据帧上重命名索引?我试过这样做
df.index.name = 'foo'
但是重新检查df.index.name表明它仍然是以前的状态。
答案 0 :(得分:6)
这似乎不是一种有效的方法,所以如果有更直接的话,我也不会感到惊讶。
d.index.name以'foo'开头;
def f(df, name):
df.index.name = name
return df
d.map_partitions(f, 'pow')
输出现在的索引名称为“pow”。如果使用线程调度程序完成此操作,我认为您还可以就地更改d
的索引名称(在这种情况下,您实际上不需要map_partitions
的输出)。
答案 1 :(得分:3)
有点晚,但是具有以下功能:
import dask.dataframe as dd
import pandas as pd
df = pd.DataFrame().assign(s=[1, 2], o=[3, 4], p=[5, 6]).set_index("si")
ddf = dd.from_pandas(df, npartitions=2)
ddf.index = ddf.index.rename("si2")
我希望这可以帮助其他人!
答案 2 :(得分:1)
你在做什么应该工作,再次检查:
df = pd.DataFrame(np.random.rand(2,2))
df
Out[7]:
0 1
0 0.016233 0.856702
1 0.597350 0.710255
df.index.name = 'foo'
df
Out[10]:
0 1
foo
0 0.016233 0.856702
1 0.597350 0.710255
df.index
Out[11]:
RangeIndex(start=0, stop=2, step=1, name='foo')
# even renaming after :
df.index.name ='foo2'
df
Out[14]:
0 1
foo2
0 0.016233 0.856702
1 0.597350 0.710255