Панды - Транспонирование строк в разные датафреймы - PullRequest
1 голос
/ 25 апреля 2019

У меня есть две строки данных. Я пытаюсь перенести это в два кадра данных

col1,col2,col3
1,2,3
4,5,6

Я пытаюсь выполнить функцию транспонирования для вышеупомянутого и делю это на два кадра данных.

Когда я делаю простую транспонирование, я получаю следующее:

col1,1,4
col2,2,5
col3,3,6

Я пытаюсь выполнить транспонирование на основе количества строк данных и разделить их на разные фреймы данных.

Ожидаемый результат:

Dataframe1:

col1,1
col2,2
col3,3

Dataframe2:

col1,4
col2,5
col3,6

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Вы можете получить доступ к shape кадра данных и получить количество столбцов, а затем использовать iloc, чтобы извлечь каждый столбец в качестве кадра данных в новый список:

t = df.T

dfs = [t.iloc[:, x:x+1] for x in range(t.shape[1])]

print(dfs[0], '\n')
print(dfs[1])

      0
col1  1
col2  2
col3  3 

      1
col1  4
col2  5
col3  6
1 голос
/ 25 апреля 2019

Вы можете создать словарь для словаря DataFrames:

df1 = df.T
dfs = {c: df1[[c]] for c in df1.columns}
print (dfs)
{0:       0
col1  1
col2  2
col3  3, 1:       1
col1  4
col2  5
col3  6}

print (dfs[0])
      0
col1  1
col2  2
col3  3

print (dfs[1])
      1
col1  4
col2  5
col3  6

При необходимости извлеките DataFrames из оригинала DataFrame:

print (df.loc[[0]].T)
      0
col1  1
col2  2
col3  3

print (df.loc[[1]].T)
      1
col1  4
col2  5
col3  6
...