Python Pandas에서 데이터 프레임 / 열을 0으로 만드는 가장 빠른 방법
Aug 18 2020
다음과 같이 데이터 프레임을 반복하는 것보다 팬더 데이터 프레임 열을 제로화하는 더 빠른 방법이 있습니까 (여기서 A, B 및 C는 열 이름) :
while x < Framelength
dg.iloc[x, A] = 0
dg.iloc[x, B] = 0
dg.iloc[x, C] = 0
x+=1
더 빠를 경우 전체 데이터 프레임을 제로화해도 괜찮습니다.
답변
2 BENY Aug 19 2020 at 02:14
확인
cols=[...]
df.loc[:, cols]=0
1 anon01 Aug 19 2020 at 02:38
전체 데이터 프레임을 0으로 만들 수 있습니다.
df[df.columns] = 0
또는 열 목록 (반복 가능)을 지정하십시오.
cols = list("ABC")
df[cols] = 0
1 MarcosTidball Aug 19 2020 at 02:14
열 이름을 호출하여 열의 모든 행을 비우려면 다음과 같이 할 수 있습니다.
df["A"] = 0
df["B"] = 0
이와 같은 것이 매우 효율적이라고 생각하지만 전체 DataFrame을 0으로 만들고 싶다면 :
for c in df:
df[c].values[:] = 0
N.Arunoprayoch Aug 19 2020 at 02:21
조건을 지정하고 원하는 값을 지정하여 간단한 접근 방식을 사용합니다.
import pandas as pd
df = pd.DataFrame({'A': [1,2,3,4,5], 'B': [34,63,2,5,0]})
# Approach
df.columns = [0 for _ in df.columns]
df[df!=0] = 0
# Result
0 0
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
ScottBoston Aug 19 2020 at 03:03
values
데이터 프레임 의 속성을 사용하여 이것을 시도하십시오 np.array.fill
.
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,(5,5)), index=[*'abcde'], columns=[*'ABCDE'])
print(df)
# A B C D E
# a 94 96 76 99 34
# b 88 63 17 51 46
# c 92 64 32 12 23
# d 88 89 43 34 50
# e 93 37 70 27 40
df.values.fill(0)
print(df)
# A B C D E
# a 0 0 0 0 0
# b 0 0 0 0 0
# c 0 0 0 0 0
# d 0 0 0 0 0
# e 0 0 0 0 0