我有n列和x行数的数据文件。
如何将每列与其他每列数据相对应?

data=[]
inFile = open('random.data','r')
    for line in inFile.readlines():
        line = line.split()
        b = np.array([line],dtype=float)
        for i in range(len(b)):
            c=(b[i])
            data.append(c)
inFile.close()


这产生了一个数组,我可以在其中索引每个列,如下所示:

datax = ([i[0] for i in data])
datay = ([i[1] for i in data])
dataz = ([i[2] for i in data])
dataa = ([i[3] for i in data])


然后互相对抗:

plt.plot(datax,datay,dataz,dataa,'o')


如何使用for循环来做到这一点,使其适用于n个列?

最佳答案

假设上面代码中的data是pandas df,下面的代码将起作用:

import matplotlib.pyplot as plt
df_data = data
for i in range(len(df_data.columns)):
    for j in range(len(df_data.columns)):
        x = df_data.iloc[:,df_data.index[i]]
        y=  df_data.iloc[:,df_data.index[j]]
        plt.figure()
        plt.plot(x[i],y[j])


要将数据读取到df,下面是代码:

data = pd.read_csv('random.data', sep=" ", header=None) #sep depends on your file, it can be space, semicolon or anything.
data.columns = ["a", "b","c", ... "etc.", ...] # Put names of your column in place of a,b,c etc.

关于python - 如何将数据的每一列与其他数据列相对应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52766174/

10-10 18:26
查看更多