gpt4 book ai didi

Python Pandas Dataframe 将列值/索引拉低一

转载 作者:行者123 更新时间:2023-12-01 04:41:15 24 4
gpt4 key购买 nike

我正在使用 pandas DataFrame,我想将一列值/索引拉低 1。因此列表数据帧长度将减一。就像我的示例图片中的这样:

DataFrame before -> after

新的DataFrame应该是id 2-5,但当然在操作后重新索引为1-4。不仅仅是 nameplace 行。

如何像这样快速操作 DataFrame?

非常感谢。

最佳答案

您可以shift名称列,然后使用 iloc 进行切片:

In [55]:   
df = pd.DataFrame({'id':np.arange(1,6), 'name':['john', 'bla', 'tim','walter','john'], 'place':['new york','miami','paris','rome','sydney']})
df

Out[55]:

id name place
0 1 john new york
1 2 bla miami
2 3 tim paris
3 4 walter rome
4 5 john sydney

In [56]:
df['name'] = df['name'].shift(-1)
df = df.iloc[:-1]
df

Out[56]:

id name place
0 1 bla new york
1 2 tim miami
2 3 walter paris
3 4 john rome

如果您的“id”列是您的索引,则上述内容仍然有效:

In [62]:
df = pd.DataFrame({'name':['john', 'bla', 'tim','walter','john'], 'place':['new york','miami','paris','rome','sydney']},index=np.arange(1,6))
df.index.name = 'id'
df

Out[62]:

name place
id
1 john new york
2 bla miami
3 tim paris
4 walter rome
5 john sydney

In [63]:
df['name'] = df['name'].shift(-1)
df = df.iloc[:-1]
df

Out[63]:

name place
id
1 bla new york
2 tim miami
3 walter paris
4 john rome

关于Python Pandas Dataframe 将列值/索引拉低一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30681446/

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