Pandas에서 DataFrame 행을 무작위로 섞는 방법
-
Pandas에서 DataFrame 행을 섞는
pandas.DataFrame.sample()
방법 -
Pandas DataFrame 행을 섞는
numpy.random.permutation()
-
sklearn.utils.shuffle()
은 Pandas DataFrame 행을 섞습니다
Pandas DataFrame
객체의sample()
메소드,NumPy
모듈의permutation()
함수 및sklearn
패키지의shuffle()
함수를 사용하여 Pandas의DataFrame
행을 무작위로 섞을 수 있습니다.
Pandas에서 DataFrame 행을 섞는pandas.DataFrame.sample()
방법
pandas.DataFrame.sample()
을 사용하여 임의의 항목 샘플을 반환 할 수 있습니다. DataFrame 객체의 축에서 axis
매개 변수의 기본값 인 행 단위로 요소를 샘플링해야하므로axis
매개 변수를 0으로 설정합니다.
frac
매개 변수는 반환해야하는 전체 인스턴스의 비율을 결정합니다. 셔플을하려면frac
의 값을 1로 설정하십시오.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)
df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)
출력:
Date Fruit Price
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
3 April-13 Mango 4
Date Fruit Price
3 April-13 Mango 4
2 April-12 Banana 2
0 April-10 Apple 3
1 April-11 Papaya 1
Dataframe.shuttle
메소드는 위에 표시된 것처럼 Pandas DataFrame의 행을 섞습니다. DataFrame 행의 인덱스는 초기 인덱스와 동일하게 유지됩니다.
reset_index()
메소드를 추가하여 데이터 프레임 인덱스를 재설정 할 수 있습니다.
import pandas as pd
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
print(df)
df_shuffled = df.sample(frac=1).reset_index(drop=True)
print(df_shuffled)
출력:
Date Fruit Price
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
3 April-13 Mango 4
Date Fruit Price
0 April-11 Papaya 1
1 April-13 Mango 4
2 April-10 Apple 3
3 April-12 Banana 2
여기서drop=True
옵션은index
열이 새 열로 추가되지 않도록합니다.
Pandas DataFrame 행을 섞는numpy.random.permutation()
numpy.random.permutation()
을 사용하여 DataFrame의 인덱스를 섞을 수 있습니다. 셔플 된 인덱스가iloc()
메소드를 사용하여 행을 선택하기 위해 사용될 때, 무작위로 셔플 된 행을 얻습니다.
import pandas as pd
import numpy as np
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
df_shuffled = df.iloc[np.random.permutation(df.index)].reset_index(drop=True)
print(df_shuffled)
출력:
Date Fruit Price
0 April-13 Mango 4
1 April-12 Banana 2
2 April-10 Apple 3
3 April-11 Papaya 1
동일한 코드를 실행하는 동안 다른 결과를 얻을 수 있습니다. np.random.permutation()
함수는 매번 다른 수의 순열을 생성하기 때문입니다.
sklearn.utils.shuffle()
은 Pandas DataFrame 행을 섞습니다
또한 sklearn.utils.shuffle()
을 사용하여 Pandas DataFrame의 행을 섞을 수도 있습니다.
import pandas as pd
import numpy as np
import sklearn
dates = ["April-10", "April-11", "April-12", "April-13"]
fruits = ["Apple", "Papaya", "Banana", "Mango"]
prices = [3, 1, 2, 4]
df = pd.DataFrame({"Date": dates, "Fruit": fruits, "Price": prices})
df_shuffled = sklearn.utils.shuffle(df)
print(df_shuffled)
출력:
Date Fruit Price
3 April-13 Mango 4
0 April-10 Apple 3
1 April-11 Papaya 1
2 April-12 Banana 2
sklearn
패키지가 설치되어 있지 않다면 스크립트를 사용하여 간단히 설치할 수 있습니다:
pip install -U scikit-learn
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn