반응형
DataFrame이 주어지면 :
np.random.seed(0)
df = pd.DataFrame(np.random.randn(3, 3), columns=list('ABC'), index=[1, 2, 3])
df
A B C
1 1.764052 0.400157 0.978738
2 2.240893 1.867558 -0.977278
3 0.950088 -0.151357 -0.103219
상수 값 (예 : 0)을 포함하는 새 열을 추가하는 가장 간단한 방법은 무엇입니까?
A B C new
1 1.764052 0.400157 0.978738 0
2 2.240893 1.867558 -0.977278 0
3 0.950088 -0.151357 -0.103219 0
이것이 내 해결책이지만 이것이 NaN을 '새'열에 넣는 이유를 모르겠습니다.
df['new'] = pd.Series([0 for x in range(len(df.index))])
A B C new
1 1.764052 0.400157 0.978738 0.0
2 2.240893 1.867558 -0.977278 0.0
3 0.950088 -0.151357 -0.103219 NaN
해결 방법
이것이 NaN
을 열에 넣는 이유는 오른쪽 개체의 df.index
와 Index
가 다르기 때문입니다. @zach는 0의 새 열을 할당하는 적절한 방법을 보여줍니다. 일반적으로 pandas
는 가능한 한 많은 인덱스 정렬을 시도합니다. 한 가지 단점은 인덱스가 정렬되지 않으면 정렬되지 않는 모든 위치에 NaN
이 표시된다는 것입니다. 재색 인
및 align
메서드를 사용하여 부분적으로, 전체적으로, 모두 정렬되지 않은 인덱스가있는 개체에 대한 정렬 작업에 대한 직관력을 얻으십시오. 예를 들어, DataFrame.align ()
이 부분적으로 정렬 된 인덱스에서 작동하는 방식은 다음과 같습니다.
In [7]: from pandas import DataFrame
In [8]: from numpy.random import randint
In [9]: df = DataFrame({'a': randint(3, size=10)})
In [10]:
In [10]: df
Out[10]:
a
0 0
1 2
2 0
3 1
4 0
5 0
6 0
7 0
8 0
9 0
In [11]: s = df.a[:5]
In [12]: dfa, sa = df.align(s, axis=0)
In [13]: dfa
Out[13]:
a
0 0
1 2
2 0
3 1
4 0
5 0
6 0
7 0
8 0
9 0
In [14]: sa
Out[14]:
0 0
1 2
2 0
3 1
4 0
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
Name: a, dtype: float64
참조 페이지 https://stackoverflow.com/questions/24039023
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python, print delimited list (0) | 2020.12.14 |
---|---|
파이썬 Python의 연산자 오버로딩에 대한 종합 가이드 (0) | 2020.12.14 |
파이썬 Pandas에서 기존 데이터 프레임의 다중 인덱스 설정 (0) | 2020.12.13 |
파이썬 qtableWidget PyQT에 행을 추가하는 방법은 무엇입니까? (0) | 2020.12.13 |
파이썬 기본 동작을 중단하지 않고 Python에서 __getattr__을 어떻게 재정의합니까? (0) | 2020.12.13 |
댓글