【问题标题】:Pandas DataFrame Table Index ChangePandas DataFrame 表索引更改
【发布时间】:2022-01-10 00:00:32
【问题描述】:

这就是我所做的,我拿了一个 SQL 表,然后用 pandas 读取它:

import pandas as pd

df = pd.read_sql(query, conn)

作为“查询”,我想从数据库中获取的表和“conn”与数据库的连接。我做的查询,以防万一你需要知道基本上是一个 SELECT 我加入多个表,我按数量和总和对它们进行分组。像这样的:

SELECT p.quantity, sum(s.count)
FROM data_base.stock s
JOIN blah blah
JOIN blah blah
JOIN blah blah
WHERE blah blah
GROUP BY p.quantity

这给了我一个像这样的表格: 可用啤酒总数:

**quantity**        **sum**
220             3223
620             5654
315             3455

我希望表格没有默认名称,我想稳定它们,我发现下一行代码可以工作:

df = df.rename(
 columns={'quantity': 'Presentation (mL)', 'sum':'Available (Unities)'},
 index={'220': '220mL Bottle', '315':'315mL Bottle', '620':'620mL Bottle'}
               )

而且,问题出在这里,结果表是这样显示的,索引没有改变:

**Presentation(mL)**        **Availale (Unities)**
220                         3223
620                         5654
315                         3455

我做错了什么?

【问题讨论】:

  • 您确定您的数量列是索引而不是列吗?
  • 如果“Presentation(mL)”是索引并且您想重命名数据框的索引,df.index.name = 'Presentation (mL)'。如果要重命名列,df.rename(columns={"quantity": "resentation (mL)", "sum": "Availale (Unitities)"})
  • @EmiOB 我很确定,这是我所依据的文档或示例:Pandas Dataframe Rename
  • @Alex 我确实更改了列,并且正如您所说,它可以工作。但是我要更改的索引是“220”、“315”和“620”,而我这样做是行不通的。
  • willyro93,“数量”是列?如果是这样,请尝试使用 df.set_index('Presentation(mL)')

标签: python sql pandas database dataframe


【解决方案1】:

我能够解决它,因为我想改变的是“220”、“315”和“620”的值,我需要做的就是:

 df["Presentation(mL)"].replace(
                                 {220:"220mL Bottle",
                                  315:"315mL Bottle",
                                  620:"620mL Bottle"},
                                  inplace=True
                               )

【讨论】:

    猜你喜欢
    • 2021-07-20
    • 2021-11-13
    • 2017-03-11
    • 2018-01-18
    • 2018-07-28
    • 2017-10-20
    • 2019-04-06
    相关资源
    最近更新 更多