목록을 Pandas 데이터 프레임 열로 변환


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

숫자는 위의 Required Pandas DF의 인덱스를 나타냅니다.


1
귀하의 코드 (및 오류)
게시

답변:


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-ya, 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 핵심 데이터 프레임으로 변환하려면 pandas 패키지의 DataFrame 메서드 를 사용해야 합니다.

위의 작업을 수행하는 방법에는 여러 가지가 있습니다.

팬더를 pd로 가져 오기

  1. pd.DataFrame ({ 'Column_Name': Column_Data})
  • 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})
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.