Есть ли способ транспонировать все значения столбца CSV поверх строк, используя pandas, python или excel?(столбец 1 = строка 1, столбец 2 = строка 2) - PullRequest
0 голосов
/ 22 сентября 2019

Мне нужно взять каждый столбец моего CSV-файла и установить его в виде строки, поскольку каждое значение в (x, y) одинаково в (y, x).Кажется легко, но я продолжаю получать ошибки.[Изображение односторонних данных по горизонтали] [1] Я пытался выполнить синтаксический анализ с помощью df.iat и нескольких других методов pandas, включая iloc, превращая столбец в объект списка, а затем пытаясь установить объект списка в индексированной строке., транспонировать (как в python через панд, так и excel для времени)

    # 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]}```  

1 Ответ

0 голосов
/ 23 сентября 2019

Чтобы перевернуть его по диагонали:

df = pd.DataFrame({
    '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]
})

flipped = df.T
flipped.columns = df.columns
flipped.index = df.index

func = lambda col1, col2: col1.combine_first(col2)
df.combine(flipped, func)

Оригинал:

      1     2     3      4      5
0  None   0.6  0.93   0.22   0.77
1  None  None  1.01  0.124  0.012
2  None  None  None   .134  0.232
3  None  None  None   None   0.99
4  None  None  None   None   None

После преобразования:

      1      2      3      4      5
0  None    0.6   0.93   0.22   0.77
1   0.6   None   1.01  0.124  0.012
2  0.93   1.01   None   .134  0.232
3  0.22  0.124   .134   None   0.99
4  0.77  0.012  0.232   0.99   None
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...