【发布时间】:2019-09-22 18:32:52
【问题描述】:
我需要获取 csv 文件的每一列,并将其设置为行,因为 (x,y) 处的每个值在 (y,x) 处都相同。似乎很容易,但我不断收到错误。 [沿水平方向的单面数据图像][1] 我尝试使用 df.iat 和其他几个 pandas 方法(包括 iloc)进行解析,将列转换为列表对象,然后尝试将列表对象设置在索引行中,转置(都在 python 中通过 pandas,并且擅长时间)
# Set to 5 just to verify that it does not erase old data, but adds new
# true range is 10,000 x 10,000
for x in range(1,5):
for y in range(x+1,5):
a = float(toParse.iat[y,x])
toParse.iat[x,y] = a
# Data beforehand
data = {'1': [None,None,None,None,None],
'2': ['0.6',None,None,None,None],
'3': ['0.93','1.01',None,None,None],
'4': ['0.22','0.124','.134',None,None],
'5': ['0.77','0.012','0.232','0.99',None]}
# After transposed
data = {'1': [None,'0.6','0.93','0.22','0.77'],
'2': ['0.6',None,'1.01','0.124','0.012'],
'3': ['0.93','1.01',None,'0.134','0.232'],
'4': ['0.22','0.124','0.134',None,'0.99'],
'5': ['0.77','0.012','0.232','0.99',None]}```
【问题讨论】:
-
您可以在 Pandas 中使用多种方法来解决这个问题 - 有用的是数据框的文本示例(5 行就可以)和一个示例输出(同样是 5 行)在转置方面pandas,你可以调用
df.T方法 -
我现在就写出这个例子,但是我使用了 df.T,它只是将列并排连接起来,所以我最终得到了 10 列,其中包含 2x 重复数据,而不是设置它们作为行。我将添加下一条评论作为示例。在 Stack Overflow 中写作很新。
-
没问题可能需要使用
pd.melt -
为了方便查看,我将代码添加到原件中。我会在等待的时候去查看关于融化的 Pandas Docs
-
基本上,我要做的就是取第一列,并将第一行设置为它的所有值(这是一个正方形集),然后是第 2 列,等等,直到第 10,000 列。
标签: excel python-3.x pandas csv