복붙노트

[PYTHON] 선택한 행과 열의 팬더 분 ()

PYTHON

선택한 행과 열의 팬더 분 ()

하나의 행과 최소한의 열만 포함하는 열을 만들려고합니다. 예를 들면 다음과 같습니다.

    A0      A1      A2      B0      B1      B2      C0      C1
0   0.84    0.47    0.55    0.46    0.76    0.42    0.24    0.75
1   0.43    0.47    0.93    0.39    0.58    0.83    0.35    0.39
2   0.12    0.17    0.35    0.00    0.19    0.22    0.93    0.73
3   0.95    0.56    0.84    0.74    0.52    0.51    0.28    0.03
4   0.73    0.19    0.88    0.51    0.73    0.69    0.74    0.61
5   0.18    0.46    0.62    0.84    0.68    0.17    0.02    0.53
6   0.38    0.55    0.80    0.87    0.01    0.88    0.56    0.72

여기 컬럼 B0, B1, B2의 각 행에 대한 최소값을 포함하는 컬럼을 생성하려고합니다.

결과는 다음과 같습니다.

    A0      A1      A2      B0      B1      B2      C0      C1      Minimum
0   0.84    0.47    0.55    0.46    0.76    0.42    0.24    0.75    0.42
1   0.43    0.47    0.93    0.39    0.58    0.83    0.35    0.39    0.39
2   0.12    0.17    0.35    0.00    0.19    0.22    0.93    0.73    0.00
3   0.95    0.56    0.84    0.74    0.52    0.51    0.28    0.03    0.51
4   0.73    0.19    0.88    0.51    0.73    0.69    0.74    0.61    0.51
5   0.18    0.46    0.62    0.84    0.68    0.17    0.02    0.53    0.17
6   0.38    0.55    0.80    0.87    0.01    0.88    0.56    0.72    0.01

여기에 코드의 일부가 있지만, 내가 원하는 것을하지 않습니다.

for i in range(0,2):
    df['Minimum'] = df.loc[0,'B'+str(i)].min()

해결법

  1. ==============================

    1.이것은 한 줄짜리이기 때문에, 아래쪽이 아닌 열을 가로 질러 작동하도록하려면 min에 축 인수를 사용해야합니다.

    이것은 한 줄짜리이기 때문에, 아래쪽이 아닌 열을 가로 질러 작동하도록하려면 min에 축 인수를 사용해야합니다.

    df['Minimum'] = df.loc[:, ['B0', 'B1', 'B2']].min(axis=1)
    

    다른 열 수에 대해이 솔루션을 사용해야하는 경우 for 루프 또는 목록 이해를 사용하여 열 목록을 구성 할 수 있습니다.

    n_columns = 2
    cols_to_use = ['B' + str(i) for i in range(n_columns)]
    df['Minimum'] = df.loc[:, cols_to_use].min(axis=1)
    
  2. from https://stackoverflow.com/questions/25479607/pandas-min-of-selected-row-and-columns by cc-by-sa and MIT license