Pandas의 loc 사양이 바뀌었기 때문에 메모
data = [[1,2,3],[4,5,6],[7,8,9]]
col = ['A','C','E']
df = pd.DataFrame(data, columns=col)
# A C E
#0 1 2 3
#1 4 5 6
#2 7 8 9
Pandas 0.23 이전에서는 이것에 대해 loc에서 항목에 A, B, C로 지정하면
데이터에 없는 항목명은 모두 결측값으로서 작성되고 있었다.
sel_col = ['A','B','C']
print(df.loc[:,sel_col])
#version 0.23以前の場合
# A B C
#0 1 NaN 2
#1 4 NaN 5
#2 7 NaN 8
그러나 Pandas 1.0 이후에는 다음과 같은 에러가 나오게 되었다.
아무래도 데이터 프레임에 없는 항목을 지정해서는 안 되는 것 같다.
이전과 같이 데이터 프레임에 없는 항목은 결손으로 만들고 싶은 경우는 대신 reindex를 사용하면 가능하다.
sel_col = ['A','B','C']
print(df.reindex(columns=sel_col))
# A B C
#0 1 NaN 2
#1 4 NaN 5
#2 7 NaN 8
또는 데이터 프레임에 포함 된 항목 만 표시하려면 다음과 같이
데이터 프레임의 항목과 지정 항목의 intersection을 취할 수 있는 것 같다.
print(df.loc[:,df.columns.intersection(sel_col)])
# A C
#0 1 2
#1 4 5
#2 7 8
Reference
이 문제에 관하여(Pandas의 loc 사양이 바뀌었기 때문에 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/uz29/items/56807714ec81106677f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)