【问题标题】:Summarize pandas DataFrame总结 pandas DataFrame
【发布时间】:2021-01-14 13:09:21
【问题描述】:

我想总结一下 pandas DataFrame 文件。这个是这样的->

City      Name      Date
London    Joey      1998
Vegas     Chandler  1999

所以结果会是这样的。 1998 年,乔伊在伦敦。 1999年钱德勒在维加斯。 像这样的东西。有什么解决方法吗?或者哪些模块可以帮助我做到这一点? 谢谢。

【问题讨论】:

  • 您是否希望将结果放在数据框的新列中?
  • 你好。我想将这些句子保存在 .doc/.docx 文件中

标签: python pandas summarization


【解决方案1】:

有了这个 csv:

City,Name,Date
London,Joey,1998
Vegas,Chandler,1999

您可以使用以下代码:

import pandas as pd

df = pd.read_csv("test.csv")
for i in range(len(df)):
    print(f"In {df.iloc[i,2]}, {df.iloc[i,0]} was in {df.iloc[i,1]}.")

它遍历数据帧的行,并使用字符串中的格式前缀来打印句子,其中包含使用 df.iloc 的每一行的值。

【讨论】:

    【解决方案2】:

    要解决这个问题,您实际上只需要遍历行。使用列表推导会比使用 `iterrows: 更快:

    如果要修改DataFrame:

    在这里,我们使用DataFrame.apply 来“应用”每一行的函数:

    def format_row(row):
        return f"In {row['Date']}, {row['Name']} was in {row['City']}."
    
    df = df.apply(lambda r: format_row(r), axis=1)
    print(df)
    

    输出:

    0       In 1998, Joey was in London.
    1    In 1999, Chandler was in Vegas.
    

    如果你想得到句子作为列表:

    您可以定义一个格式化行的函数,如下所示:

    def format_row(row):
        return f"In {row[0]}, {row[1]} was in {row[2]}."
    

    然后使用列表推导相应地zip该行并将其传递给函数。

    rows = [format_row(r) for r in zip(df["Date"], df["Name"], df["City"])]
    

    如果这些列是DataFrame 中的唯一列,则使用DataFrame.values 会更干净,但提供相同的输出:

    rows = [format_row(r) for r in df.values]
    

    在这种情况下,您必须在函数内交换索引值:

    return f"In {row[2]}, {row[1]} was in {row[0]}."
    

    【讨论】:

      【解决方案3】:

      给定数据

      df=pd.DataFrame(data=[['London','Joey','1998'],['Vegas','Chandler','1999']],columns=['City','Name','Date'])
      

      如果需要,可以添加一个新列作为摘要,也可以按照@gmdev 的建议将其添加到列表中。

      df['Summary']=df.apply(lambda x: 'In '+str(x.Date)+' '+str(x.Name)+' was in '+str(x.City),axis=1)
      

      【讨论】:

        猜你喜欢
        • 2022-07-28
        • 2013-12-09
        • 1970-01-01
        • 2021-04-06
        • 1970-01-01
        • 2017-06-20
        • 1970-01-01
        • 2020-09-30
        • 1970-01-01
        相关资源
        最近更新 更多