【问题标题】:How can I make a for loop that creates an array from 2 columns from different excel files?如何创建一个 for 循环,从不同 excel 文件的 2 列创建一个数组?
【发布时间】:2021-12-09 23:42:07
【问题描述】:

我一直在尝试学习来自 MATLAB 的 python,并且一直在努力创建 for 循环。我有大约 10 个 excel 文件 (.csv),其中包含 2 列 CURR 和 VOLT。我希望能够为所有 excel 文件快速制作 CURR 和 VOLT 的向量(或者它们是否称为数组?)。

这是我目前正在使用的:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
blue = pd.read_csv("blue.csv", usecols = ['Volt','Curr'])
blueX=blue['Curr']
blueY=blue['Volt']
plt.plot(blueX,blueY, 'r', label='Zinc')
plt.title('Zinc')
plt.gca().legend()
plt.xlabel('Current [A]')
plt.ylabel('Voltage [V]')

如何将其简化为所有颜色的 forloop? 这就是我已经开始的,但我坚持什么是 dict 以及如何从中调用值。如果可能的话,我想让 X 和 Y 数组/向量类似于我上面的代码。或者如果有更好的方法,我很乐意学习。

files = ['BLUE' , 'BLUE.REV', 'GREEN', 'GREEN.REV', 'NITRO', 'PURPLE', 'PURPLE.REV', 'RED','RED.REV','SAND','YELLOW.REW','YELLW']
for i in files:
    data[i]=pd.read_csv(i+".csv", usecols = ['VOLT', 'CURR'])

【问题讨论】:

  • 有什么问题??我无法理解。代码运行良好。请注意usecols 的大小写字母。在您更大的代码主体中使用['Volt','Curr'],但在另一个代码主体中使用['VOLT', 'CURR']
  • 要访问字典的值,您可以使用 *data.values() 并为其使用索引,例如print([*data.values()][0]).

标签: python excel pandas numpy matplotlib


【解决方案1】:

在您的示例中,必须在向其中插入任何值之前创建“数据”变量。您可以创建一个空列表:

data = []

在每个循环之后,您可以将 pandas DataFrame 附加到该列表:

files = ['BLUE' , 'BLUE.REV', 'GREEN', 'GREEN.REV', 'NITRO', 'PURPLE', 'PURPLE.REV', 'RED','RED.REV','SAND','YELLOW.REW','YELLW']
for i in files:
    data.append(pd.read_csv(i+".csv", usecols = ['VOLT', 'CURR']))

有了这个,您将有一个列表“数据”,其中包含您从文件中提取的所有数据,您可以使用索引访问它,例如 data[0] 对应于“BLUE”变量,data[1 ] 'BLUE.REV' 变量等等。

这只是一种方法。

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    相关资源
    最近更新 更多