Panda 시리즈 또는 인덱스를 NumPy 배열로 변환하려면 어떻게 해야 합니까?
DataFrame의 인덱스 또는 열을 NumPy 배열 또는 Python 목록으로 가져오려면 어떻게 해야 합니까?
NumPy 어레이를 가져오려면values
속성:
In [1]: df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c']); df
A B
a 1 4
b 2 5
c 3 6
In [2]: df.index.values
Out[2]: array(['a', 'b', 'c'], dtype=object)
이렇게 하면 데이터가 이미 저장된 방식에 액세스하므로 변환할 필요가 없습니다.
주의: 이 속성은 다른 많은 판다 개체에도 사용할 수 있습니다.
In [3]: df['A'].values
Out[3]: Out[16]: array([1, 2, 3])
인덱스를 목록으로 가져오려면tolist
:
In [4]: df.index.tolist()
Out[4]: ['a', 'b', 'c']
마찬가지로 열에 대해서도 마찬가지입니다.
사용할 수 있습니다.df.index
인덱스 객체에 액세스하여 목록의 값을 가져오려면df.index.tolist()
마찬가지로,df['col'].tolist()
를 참조해 주세요.
팬더 > = 0.24
의 사용을 중지합니다..values
이 방법들에 찬성합니다!
v0.24.0 이후, NumPy 어레이를 입수하기 위해서, 2개의 브랜드 스쿠핑의 새로운 권장 방법을 사용할 수 있습니다.Index
,Series
,그리고.DataFrame
오브젝트: 및 입니다.사용방법에 대해서는 다음 문서를 참조해 주십시오.
제거하거나 권장하지 않습니다.
Series.values
아니면DataFrame.values
단, 또는 를 사용하는 것을 강력히 권장합니다.
자세한 내용은 v0.24.0 릴리즈 노트의 이 섹션을 참조하십시오.
df.index.to_numpy()
# array(['a', 'b'], dtype=object)
df['A'].to_numpy()
# array([1, 4])
기본적으로 보기가 반환됩니다.변경된 내용은 원본에 영향을 미칩니다.
v = df.index.to_numpy()
v[0] = -1
df
A B
-1 1 2
b 4 5
대신 복사가 필요한 경우 다음을 사용하십시오.to_numpy(copy=True
);
v = df.index.to_numpy(copy=True)
v[-1] = -123
df
A B
a 1 2
b 4 5
이 기능은 DataFrames에서도 동작합니다(단,.array
하지 않습니다).
array
기여하다
이 속성은 인덱스/시리즈를 지원하는 개체를 반환합니다.
pd.__version__
# '0.24.0rc1'
# Setup.
df = pd.DataFrame([[1, 2], [4, 5]], columns=['A', 'B'], index=['a', 'b'])
df
A B
a 1 2
b 4 5
<!->
df.index.array
# <PandasArray>
# ['a', 'b']
# Length: 2, dtype: object
df['A'].array
# <PandasArray>
# [1, 4]
# Length: 2, dtype: int64
여기서부터, 다음의 방법으로 리스트를 취득할 수 있습니다.list
:
list(df.index.array)
# ['a', 'b']
list(df['A'].array)
# [1, 4]
또는 직접 전화만 하면 됩니다..tolist()
:
df.index.tolist()
# ['a', 'b']
df['A'].tolist()
# [1, 4]
반환된 물품에 대해서는 의사가 언급하고 있습니다.
위해서
Series
그리고.Index
특히 일반 NumPy 어레이에 의해 백업됩니다.Series.array
새로운 것을 반환할 것이다arrays.PandasArray
(복사되지 않은) 얇은 랩퍼입니다.numpy.ndarray
.arrays.PandasArray
그 자체로는 특별히 유용하지 않지만 팬더나 서드파티 라이브러리에서 정의된 확장 어레이와 동일한 인터페이스를 제공합니다.
그래서 요약하자면.array
어느 쪽도 반환되지 않는다
- 기존의
ExtensionArray
인덱스/시리즈 백업 또는 - 시리즈를 지원하는 NumPy 어레이가 있는 경우,
ExtensionArray
개체는 기본 어레이 위에 씬 래퍼로 생성됩니다.
new 의
이러한 기능은 GitHub의 2가지 이슈 GH19954와 GH23623에서 논의한 결과 추가되었습니다.
구체적으로는, 다음의 이유에 대해 설명합니다.
와 [...]] ] ]
.values
반환된 값이 실제 배열인지, 일부 변형인지, 또는 팬더 맞춤 배열 중 하나인지 불분명합니다(예:Categorical
를 들어, 「」를 붙이면,PeriodIndex
,.values
「」를 합니다.ndarray
] [... objects of each each of of of of ]
이 두 가지 기능은 API의 일관성을 향상시키는 것을 목표로 하며, 이는 올바른 방향으로 나아가는 중요한 단계입니다.
★★★★★★★★★★★★★★★★★..values
현재 버전에서는 권장되지 않지만, 향후 언젠가 이러한 일이 발생할 것으로 예상되므로 가능한 한 빨리 새로운 API로 이행해 주셨으면 합니다.
다중 인덱스 데이터 프레임을 다루는 경우 다중 인덱스의 한 이름 열만 추출할 수 있습니다.이것은, 다음과 같이 할 수 있습니다.
df.index.get_level_values('name_sub_index')
그리고 물론.name_sub_index
must must must must must must must must must must of of of of of 의 요소여야 .FrozenList
df.index.names
팬더 v0.13을 사용할 수도 있습니다.
df.index.get_values()
보다 최근의 방법은 .to_numpy() 함수를 사용하는 것입니다.
데이터 프레임에 '가격' 열이 있는 경우 다음과 같이 변환할 수 있습니다.
priceArray = df['price'].to_numpy()
float 또는 object와 같은 데이터 유형을 함수의 인수로 전달할 수도 있습니다.
를 개종시켰다.dataframe
로로 합니다.list
요.list.index()
다음과 같이 합니다.
dd = list(zone[0]) #Where zone[0] is some specific column of the table
idx = dd.index(filename[i])
있습니다.idx
다음은 데이터 프레임 열을 NumPy 배열로 변환하는 간단한 방법입니다.
df = pd.DataFrame(somedict)
ytrain = df['label']
ytrain_numpy = np.array([x for x in ytrain['label']])
ytrain_numpy는 NumPy 배열입니다.
로 시도했다.to.numpy()
이 즉, 에러, 에러 에러, 에러가 나다.
TypeError: 선형 SVC를 사용하여 이진 관련성 분류를 수행하는 동안 유형: (dtype('O'),*에 대해 지원되는 변환이 없습니다.
to.numpy()는 dataFrame을 NumPy 배열로 변환하고 있었습니다만, 내부 요소의 데이터 타입이 리스트였기 때문에, 상기의 에러가 검출되었습니다.
언급URL : https://stackoverflow.com/questions/17241004/how-do-i-convert-a-pandas-series-or-index-to-a-numpy-array
'programing' 카테고리의 다른 글
PHP: 소수 자릿수를 가져옵니다. (0) | 2022.11.06 |
---|---|
MySQL PhpMyAdmin - 인식할 수 없는 키워드 CONCAT (0) | 2022.11.06 |
Java에서 Suppress Warnings("체크 해제")란 무엇입니까? (0) | 2022.11.06 |
특정 색인 뒤에 있는 목록에서 모든 요소 제거 (0) | 2022.11.06 |
Linux에서 현재 사용되는 MySQL 구성 파일의 위치를 확인하는 방법 (0) | 2022.11.06 |