Перетворити список на колонку даних Pandas Dataframe


82

Мені потрібно перетворити мій список у фрейм даних з пандами в один стовпець

Поточний список (len = 3):

['Thanks You',
 'Its fine no problem',
 'Are you sure']

Потрібні Pandas DF (форма = 3,):

0 Thank You
1 Its fine no problem
2 Are you sure

Будь ласка, зверніть увагу, що цифри представляють індекс у обов'язковій програмі Pandas DF вище.


1
Ваш код (і помилка) є варто покласти вгору, таким чином , ми можемо пояснити , що ви зробили неправильно
OneCricketeer

Відповіді:


163

Використання:

L = ['Thanks You', 'Its fine no problem', 'Are you sure']

#create new df 
df = pd.DataFrame({'col':L})
print (df)

                   col
0           Thanks You
1  Its fine no problem
2         Are you sure

df = pd.DataFrame({'oldcol':[1,2,3]})

#add column to existing df 
df['col'] = L
print (df)
   oldcol                  col
0       1           Thanks You
1       2  Its fine no problem
2       3         Are you sure

Дякую DYZ :

#default column name 0
df = pd.DataFrame(L)
print (df)
                     0
0           Thanks You
1  Its fine no problem
2         Are you sure

15
df = pd.DataFrame(L)
DYZ

@jezrael привіт, як встановити інший роздільник, ніж кома?
sygneto

@sygneto - чи потрібно L = stringdata.split(';')?
jezrael

@jezarael я намагаюся використовувати спліт, а потім перетворити його на фрейм даних, але я отримуюAttributeError: 'list' object has no attribute 'split'
sygneto

1
@GuillaumeLabs - Я, це сталося , якщо використовувати listяк змінну, наприклад list=[1,2,3], вам потрібно list1або L, то перезапуск IDE і все працює добре.
jezrael

13

якщо ваш список виглядає так: [1,2,3], ви можете зробити:

lst = [1,2,3]
df = pd.DataFrame([lst])
df.columns =['col1','col2','col3']
df

щоб отримати це:

    col1    col2    col3
0   1       2       3

Ви також можете створити стовпець наступним чином:

import numpy as np
df = pd.DataFrame(np.array([lst]).T)
df.columns =['col1']
df

щоб отримати це:

  col1
0   1
1   2
2   3

3

Ви можете зателефонувати безпосередньо на

pd.DataFrame ()

і передайте свій список як параметр.

l = ['Thanks You','Its fine no problem','Are you sure']
pd.DataFrame(l)

Вихід:

                      0
0            Thanks You
1   Its fine no problem
2          Are you sure

І якщо у вас кілька списків, і ви хочете створити з нього фрейм даних, ви можете зробити це наступним чином:

import pandas as pd
names =["A","B","C","D"]
salary =[50000,90000,41000,62000]
age = [24,24,23,25]
data = pd.DataFrame([names,salary,age]) #Each list would be added as a row
data = data.transpose() #To Transpose and make each rows as columns
data.columns=['Names','Salary','Age'] #Rename the columns
data.head()

Вихід:

    Names   Salary  Age
0       A    50000   24
1       B    90000   24
2       C    41000   23
3       D    62000   25

Ви могли б просто зробити pd.DataFrame(zip(names,salary,age)), так?
adir abargil

2

Приклад:

['Thanks You',
 'Its fine no problem',
 'Are you sure']

код коду:

import pandas as pd
df = pd.DataFrame(lst)

Вихід:

    0
0   Thanks You
1   Its fine no problem
2   Are you sure

Не рекомендується видаляти імена стовпців кадру даних panda. але якщо ви все-таки хочете, щоб ваш кадр даних був без заголовка (відповідно до формату, який ви опублікували у питанні), ви можете зробити це:

df = pd.DataFrame(lst)    
df.columns = ['']

Результат буде таким:

0   Thanks You
1   Its fine no problem
2   Are you sure

або

df = pd.DataFrame(lst).to_string(header=False)

Але результатом буде список замість кадру даних:

0           Thanks You
1  Its fine no problem
2         Are you sure

Сподіваюся, це допомагає !!


0

Для перетворення списку в основний фрейм даних Pandas нам потрібно використовувати метод DataFrame із пакету pandas .

Існують різні способи виконання вищезазначеної операції.

імпортувати панд як pd

  1. pd.DataFrame ({'Column_Name': Column_Data})
  • Ім'я стовпця : рядок
  • Стовпець_Дата : Форма списку
  1. Дані = pd.DataFrame (Column_Data)

    Data.columns = ['Ім'я стовпця']

Отже, для вищезгаданої проблеми фрагмент коду є

import pandas as pd

Content = ['Thanks You',
           'Its fine no problem',
           'Are you sure']

Data = pd.DataFrame({'Text': Content})
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.