繁体   English   中英

Python Pandas Drop 在使用 drop 时重新排序我的数据帧

[英]Python Pandas Drop reordering my dataframe when using drop

我正在使用一个数据框,我必须将两列(quant 和 sales)添加然后删除它们,然后将列名的第一个字母大写。 问题是当我使用 drop 时,它会将它保存到另一个数据帧。 从文档中,问题出在

就地=假

import pandas as pd

pie_info_original = pd.DataFrame(
    [("classic", "apple"), ("tangy", "orange"), ("creamy", "banana"),
     ("sour", "raspberry")], 
    columns = ["flavor", "fruit"])
pie_info_original.loc[:,'quant'] = [5,1,8,3]
pie_info_original.loc[:,'sales'] = [2,1,2,3]
pie_info = pie_info_original.drop(['quant', 'sales'], axis=1)
pie_info.rename(index=str, columns={"fruit": "Fruit", "flavor" : "Flavor"})
print(pie_info)

我的数据来自于此

|  |fruit|flavor |quant|sales|
*****************************
| 0|apple|classic|5    | 2   |
| 1|orange|tangy|1    | 1   |
| 2|banana|creamy|8    | 3   |
| 3|raspberry|sour|3    | 3   |

对此

|  flavor | fruit 
*****************
| 0|classic|apple|
| 1|tangy|orange |
| 2|creamy|banana|
| 3|sour|raspberry|

我如何能够重新排列我的列,以便它们以正确的顺序显示。 我尝试将 inplace 设置为 true ,但这会阻止创建新的数据框。

**我希望水果先于风味

您可以使用str.title方法,而不是重命名:

In [11]: pie_info.columns.str.title()
Out[11]: Index(['Fruit', 'Flavor'], dtype='object')

In [12]: pie_info.columns = df.columns.str.title()

这不会对列重新排序。

pie_info_original = pd.DataFrame(
    [("classic", "apple"), ("tangy", "orange"), ("creamy", "banana"),
     ("sour", "raspberry")], 
    columns = ["flavor", "fruit"])
pie_info_original.loc[:,'quant'] = [5,1,8,3]
pie_info_original.loc[:,'sales'] = [2,1,2,3]
pie_info = pie_info_original.drop(['quant', 'sales'], axis=1)
pie_info = pie_info.rename(index=str, columns={"fruit": "Fruit", "flavor" : "Flavor"})
pie_info = pie_info[["Fruit", "Flavor"]]
print(pie_info)

输出

       Fruit   Flavor
0      apple  classic
1     orange    tangy
2     banana   creamy
3  raspberry     sour

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM