将列值指定给数据框外的变量

2024-06-26 14:09:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我将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]

我找到了一个解决方案,可以把名字取出来,但不能赋值。谢谢你的帮助


Tags: columns数据indataframedf列表val解决方案
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所说的

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

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

再次感谢你的帮助

相关问题 更多 >