gpt4 book ai didi

Python Pandas - 移动行

转载 作者:太空宇宙 更新时间:2023-11-04 08:42:24 24 4
gpt4 key购买 nike

我确信这可能很简单,但我不确定如何去做。

我有一个包含 4 行的数据框(数据透视表),我们称它们为 A、B、C、D。

现在,我不希望它们按字母顺序排列,但我希望它们按 B、C、A、D 依次排列。

如何移动行?显然,在 Excel 中,我只会剪切并粘贴它。我可以用 Python 做吗?

非常感谢

最佳答案

使用 loc
loc允许您传递一个索引器,该索引器引用具有相应标签的行(列)

df.loc[['B', 'C', 'A', 'D']]

numpy
核过度杀伤......但速度更快

i = df.index.values
v = df.values
a = i.argsort()
u = np.empty_like(a)
r = np.arange(a.size)
u[a] = r
n = list('BCAD')
pd.DataFrame(v[i[a].searchsorted(n)[u]], n, df.columns)

时机
测试数据

df = pd.DataFrame(dict(A=range(4)), list('ABCD'))

结果

%timeit df.loc[list('BCAD')]
1000 loops, best of 3: 361 µs per loop

%%timeit
i = df.index.values
v = df.values
a = i.argsort()
u = np.empty_like(a)
r = np.arange(a.size)
u[a] = r
n = list('BCAD')
pd.DataFrame(v[i[a].searchsorted(n)[u]], n, df.columns)
10000 loops, best of 3: 135 µs per loop

关于Python Pandas - 移动行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43799359/

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