【问题标题】:How to use For loop KEY to name DataFrame in Pandas如何在 Pandas 中使用 For 循环 KEY 命名 DataFrame
【发布时间】:2016-11-22 14:04:14
【问题描述】:

我想使用 List_ 中列出的字符串并将它们传递到我的函数 lambda 中,以便每次迭代名称都会针对 load 或 temp 进行更改......即。 lambda x: x.load.reset_index().T

List_ = {'load','Temp','Hum','Hum'} 
list__ = []
for names in List_:
    test = df.apply(lambda x: x.names.reset_index().T)
    list__.append(df)

【问题讨论】:

  • 变量名是怎么回事? List_ 是一组!
  • 为什么不直接传递感兴趣的列的列表? test = df[['load','Temp','Hum','Hum']].apply(lambda x: x.reset_index().T)?实际上不会test = df[['load','Temp','Hum','Hum']].reset_index().T 工作吗?还有你想在这里做什么?
  • 你定义的列表实际上并不是一个列表,而是一个集合。见type(List_)。你能提供一个你的数据的例子吗?此外,您需要修复缩进。
  • 老实说,我做了一些努力来看穿你的错误并理解你想要做什么。我失败了!你需要更好地解释自己。阅读这些帖子/文章 stackoverflow.com/help/mcvestackoverflow.com/help/how-to-ask
  • 它不起作用,因为我需要将生成的 df 彼此分开。理想情况下,我会得到 4 个结果 df,它们将被称为 df+names(但我也不知道该怎么做),我会将我的函数应用于集合中列出的每一列(如果你愿意,对不起,我是新的)分别获得4个数据框

标签: python pandas


【解决方案1】:

当我以正确的方式理解这一点时,这可能是你想要的:

List_ = {'load','Temp','Hum','Hum'} 
list__ = []
for names in List_:
    test = df.apply(lambda x: x.names.reset_index().T)
    list__.append(test)

当你改变最后一行时,你会得到你想要的。但我不确定,因为我不知道“df”来自哪里以及它是什么。

如果这是一个不正确的答案,请显示更多代码,以便每个人都能更好地理解它。

【讨论】:

    【解决方案2】:

    df4 是一个数据框,其中 Date 为索引,列包含负载、温度、嗡嗡声和风速。

    Date  Load    Temp
    1     100     1.1
    1     200     1.2
    1     300     2.4
    2     400     1.7
    2     500     4.3
    3     600     2.2  
    

    我想要做的是使用循环 for 将我的函数应用于组中的每一列,并使用 KEY 基本上是我的列的名称来创建新的转置数据框。

    grouped = df4.groupby('Date')
    cols = {'load','Temp','Windspeed','Hum'}
    df_dict = {}
    for col in cols:
         df_dict[col] = grouped[col].apply(lambda x: x.reset_index().T)
    

    无论如何,在那段痛苦的经历中,我学到了两件事 - For 循环使用 KEY 和使用字典...正在进行中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 2018-08-02
      • 2020-01-07
      • 2019-05-22
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多