Pandas에서 빈 DataFrame에 추가 하시겠습니까?


212

인덱스 나 열이 포함되지 않은 빈 데이터 프레임에 추가 할 수 있습니까?

이 작업을 시도했지만 끝에 빈 데이터 프레임이 계속 표시됩니다.

예 :

df = pd.DataFrame()
data = ['some kind of data here' --> I have checked the type already, and it is a dataframe]
df.append(data)

결과는 다음과 같습니다.

Empty DataFrame
Columns: []
Index: []

비슷한 질문에 대답했습니다 : stackoverflow.com/questions/13784192/… . 기본적으로 이와 같은newDF = pd.DataFrame() #creates a new dataframe that's empty newDF = newDF.append(oldDF, ignore_index = True) # ignoring index is optional
— geekidharsh

무엇을 추가 하시겠습니까? 단일 가치? 파이썬리스트? 팬더 시리즈? 다른 데이터 프레임? 귀하의 예제 후행 의견은 다른 데이터 프레임을 의미한다고 제안합니다. 따라서 예제 코드에 이미 데이터 프레임을 제공하십시오 :)
— smci

그리고 "결과가 다음과 같다"고 말할 때, 직접 None을 반환 하지 않기를 바랍니다 . 파이썬print(df.append(data)) 에서는 append()항상 None을 반환
— smci

답변:


388

작동해야합니다.

>>> df = pd.DataFrame()
>>> data = pd.DataFrame({"A": range(3)})
>>> df.append(data)
   A
0  0
1  1
2  2

그러나 는 append자리에서 일어나지 않는다 당신은 당신이 원하는 경우에 출력을 저장해야합니다, 그래서 :

>>> df
Empty DataFrame
Columns: []
Index: []
>>> df = df.append(data)
>>> df
   A
0  0
1  1
2  2

8
감사합니다! 작동했습니다! 나는 출력을 저장해야한다는 것을 몰랐다. 아마 문서를 더 잘 읽었어야했지만 @DSM에 감사한다!
— ericmjl

9
나는 항상 당신이 그것을 할당해야한다는 것을 잊어 버립니다!
— Andy B

66
실제로 그 추가는 제자리에 일어나지 않는 것이 여기에서 가장 중요한 정보입니다;)
— 피난처

6
Pandas 예제가 왜 그런지 보여주지 않습니다. 당신의 도움을 주셔서 감사합니다!
— Drew Szurko

2
적어도 2018 년 6 월에 새 행에서 자동으로 색인을 생성하려면 df.append (data, ignore_index = True)를 작성해야합니다. 큰 답변 주셔서 감사합니다!
— Adam B

98

행을 추가하려면 사전을 사용할 수 있습니다.

df = pd.DataFrame()
df = df.append({'name': 'Zed', 'age': 9, 'height': 2}, ignore_index=True)

그것은 당신에게 제공합니다 :

   age  height name
0    9       2  Zed

특히 대용량 데이터를 처리 할 때 성능이 낮음
— raullalves

2
다른 제안 된 대안 인 @raullalves와 관련하여 이것을 넣을 수 있습니까?
— Bouncner 2016 년

23

이 방법으로 데이터를 연결할 수 있습니다.

InfoDF = pd.DataFrame()
tempDF = pd.DataFrame(rows,columns=['id','min_date'])

InfoDF = pd.concat([InfoDF,tempDF])

고마워, 나는 concat을 시도했다. 그러나 그들이 같은 일을 할 수 있다면 왜 추가하고 연결 하는가
— Nitesh kumar

이 스레드는 좋은 설명을 줄 수 있습니다 stackoverflow.com/questions/15819050/...
— Deepish에게
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.