如何在 Pandas 中使用 For 循环 KEY 命名 DataFrame

Posted

技术标签:

【中文标题】如何在 Pandas 中使用 For 循环 KEY 命名 DataFrame【英文标题】:How to use For loop KEY to name DataFrame in Pandas 【发布时间】: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_)。你能提供一个你的数据的例子吗?此外,您需要修复缩进。 老实说,我做了一些努力来看穿你的错误并理解你想要做什么。我失败了!你需要更好地解释自己。阅读这些帖子/文章 ***.com/help/mcve 和 ***.com/help/how-to-ask 它不起作用,因为我需要将生成的 df 彼此分开。理想情况下,我会得到 4 个结果 df,它们将被称为 df+names(但我也不知道该怎么做),我会将我的函数应用于集合中列出的每一列(如果你愿意,对不起,我是新的)分别获得4个数据框 【参考方案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 和使用字典...正在进行中

【讨论】:

以上是关于如何在 Pandas 中使用 For 循环 KEY 命名 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

如何将 for 循环中的 .pkl 文件附加到 for 循环中创建的 pandas 数据帧?

如何在 for 循环中向 Pandas Dataframe 添加字符串值?

iPython/Jupyter Notebook 和 Pandas,如何在 for 循环中绘制多个图?

如何从 for 循环返回多个具有唯一名称的 pandas 数据帧?

如何使用for循环创建一定长度的numpy数组(或pandas数据框)?

如何在通过 Pandas 在 csv 中写入多个 for 循环的数据时在单个单元格中附加数据?