기본 팬더: 열 이동

3358 단어 pythonpandassoftware
때로는 열 순서를 변경하여 DataFrame의 열을 조작하고 싶을 때가 있습니다. DataFrame이 어떤 상태에 있는지에 따라 몇 가지 방법이 있습니다.

>>> import pandas as pd
>>> import numpy as np
>>> df = pd.DataFrame(np.random.rand(5,5), columns=['a', 'b', 'c', 'd', 'e'])
>>> df['max'] = df.max(axis=1)
>>>
>>> df
         a        b        c        d        e      max
0 0.067423 0.058920 0.999309 0.440547 0.572163 0.999309
1 0.384196 0.732857 0.138881 0.764242 0.096347 0.764242
2 0.900311 0.662776 0.223959 0.903363 0.349328 0.903363
3 0.988267 0.852733 0.913800 0.106388 0.864908 0.988267
4 0.830644 0.647775 0.596375 0.631442 0.907743 0.907743

먼저 기본 사항만 살펴보겠습니다. 열을 이동하거나 드롭하지 않고 원하는 열을 선택하기만 하면 원하는 순서로 볼 수 있습니다.

>>> df['max']
0 0.999309
1 0.764242
2 0.903363
3 0.988267
4 0.907743
Name: max, dtype: float64

또는 열을 두 번 이상 순서에 관계없이 보는 것을 포함하여 열 집합입니다.

>>> df[['d', 'a', 'max', 'b', 'd']]
         d.       a      max        b        d
0 0.440547 0.067423 0.999309 0.058920 0.440547
1 0.764242 0.384196 0.764242 0.732857 0.764242
2 0.903363 0.900311 0.903363 0.662776 0.903363
3 0.106388 0.988267 0.988267 0.852733 0.106388
4 0.631442 0.830644 0.907743 0.647775 0.631442

따라서 변수에 다시 할당하면 이 재정렬이 영구적으로 됩니다.

df = df[['d', 'a', 'b', 'max', 'e']]

열은 인덱스일 뿐이므로 목록으로 변환하고 조작할 수 있으며 reindex 메서드를 사용하여 열 순서를 변경할 수도 있습니다. 정렬된 이름을 열에 할당하고 싶지는 않습니다. 이렇게 하면 열이 이동하지 않고 이름이 바뀝니다!

>>> df.reindex(columns=sorted(df.columns))
         a        b        d        e      max
0 0.067423 0.058920 0.440547 0.572163 0.999309
1 0.384196 0.732857 0.764242 0.096347 0.764242
2 0.900311 0.662776 0.903363 0.349328 0.903363
3 0.988267 0.852733 0.106388 0.864908 0.988267
4 0.830644 0.647775 0.631442 0.907743 0.907743

또한 열을 처음 만들 때 원하는 순서대로 열을 만들 수 있습니다insert. 기본적으로 [] 연산자를 사용하여 열을 추가하면 끝에 배치됩니다.

>>> df.insert(3, "min", df.min(axis=1))
>>> df
         d        a        b      min      max        e
0 0.440547 0.067423 0.058920 0.058920 0.999309 0.572163
1 0.764242 0.384196 0.732857 0.096347 0.764242 0.096347
2 0.903363 0.900311 0.662776 0.349328 0.903363 0.349328
3 0.106388 0.988267 0.852733 0.106388 0.988267 0.864908
4 0.631442 0.830644 0.647775 0.631442 0.907743 0.907743

마지막으로 열을 팝한 다음 다시 삽입할 수 있습니다. 열을 팝업하면 예상대로 열이 제거되고 반환됩니다.

>>> col_e = df.pop("e")
>>> df.insert(3, "e", col_e)
>>> df
         d        a        b        e      min      max
0 0.440547 0.067423 0.058920 0.572163 0.058920 0.999309
1 0.764242 0.384196 0.732857 0.096347 0.096347 0.764242
2 0.903363 0.900311 0.662776 0.349328 0.349328 0.903363
3 0.106388 0.988267 0.852733 0.864908 0.106388 0.988267
4 0.631442 0.830644 0.647775 0.907743 0.631442 0.907743

보시다시피 DataFrame에서 열 순서를 조작하는 방법에는 여러 가지가 있습니다.

좋은 웹페이지 즐겨찾기