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.