如何在 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 数据帧?