将列值分配给数据框中的变量

Posted

技术标签:

【中文标题】将列值分配给数据框中的变量【英文标题】:assign column values to variable out of data frame 【发布时间】:2020-05-18 09:43:59 【问题描述】:

我将 Excel 工作表读入数据框中。是否有可能遍历列并将包含每列值的列表分配给以列名作为变量名的变量? 所以作为一个简单的例子,我有数据框

val = [[1,396,29],[2,397,29],[3,395,29],[4,393,29],[5,390,29],[6,398,29]]
df=pd.DataFrame(val,columns=['Hours','T1T_in','T1p_in'])
df
Hours   T1T_in  T1p_in
0   1   396 29
1   2   397 29
2   3   395 29
3   4   393 29
4   5   390 29
5   6   398 29

所以我想要一个循环来创建以列名作为变量的列表?

Hours = [1,2,3,4,5,6]
T1T_in = [396,397,395,393,390,398]
T1p_in = [29,29,29,29,29,29,29]

我找到了获取名称但无法分配值的解决方案。谢谢你的帮助

【问题讨论】:

【参考方案1】:

到目前为止有效。但我有一个问题。我仍然不明白我现在如何访问每个变量的值。在下文中,我想使用这些列表并计算一些项目。您可以在下面看到一个简化的示例。 再次感谢您。

new=[]
for i in range(len(hours)):
    new.append(T1T_in[i]+T1p_in[I])

再次感谢您的帮助

【讨论】:

如果我的帖子对您​​有帮助,您可以点赞或接受,对于一个新问题,我会建议发布一个新问题,谢谢!【参考方案2】:

将列元素作为列表获取的最简单方法是使用pandas.Series.tolist()

Hours = df.Hours.to_list()
T1T_in = df.T1p_in.to_list()
T1p_in = df.T1p_in.to_list()

如果需要,您还可以使用 for 循环(如您所愿)来获取列和行:

data = 
for column_name, rows in df.iteritems():
    data[column_name] = rows.to_list()

print(data)

输出:

'Hours': [1, 2, 3, 4, 5, 6],
 'T1T_in': [396, 397, 395, 393, 390, 398],
 'T1p_in': [29, 29, 29, 29, 29, 29]

上面的结果也可以用:

df.to_dict('list')

正如@anky_91 所说

【讨论】:

以上是关于将列值分配给数据框中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何在比较其他列时将列值填充到另一个数据框中的新列?

将列中的所有值复制到熊猫数据框中的新列

将列添加到数据框中,测试其他列中的分类变量

将预定义的数字分配给数据框中的列行值

R:将值分配给数据框中的动态变量时遇到问题

计算由另一列值分组的列值在 pandas 数据框中的共现