A maneira mais rápida de zerar dataframe / coluna em Python Pandas
Aug 18 2020
Existe uma maneira mais rápida de zerar uma coluna de dataframe do pandas do que iterar através do dataframe como esta (onde A, B e C são os nomes das colunas):
while x < Framelength
dg.iloc[x, A] = 0
dg.iloc[x, B] = 0
dg.iloc[x, C] = 0
x+=1
Tudo bem em zerar todo o dataframe se isso for mais rápido
Respostas
2 BENY Aug 19 2020 at 02:14
Verificar com
cols=[...]
df.loc[:, cols]=0
1 anon01 Aug 19 2020 at 02:38
Você pode zerar todo o dataframe:
df[df.columns] = 0
ou especifique uma lista (iterável) de colunas:
cols = list("ABC")
df[cols] = 0
1 MarcosTidball Aug 19 2020 at 02:14
Para zerar todas as linhas em uma coluna chamando o nome da coluna, você pode fazer algo como:
df["A"] = 0
df["B"] = 0
Se você quiser zerar todo o DataFrame, acredito que algo assim deve ser bastante eficiente:
for c in df:
df[c].values[:] = 0
N.Arunoprayoch Aug 19 2020 at 02:21
Eu usaria uma abordagem simples, declarando uma condição e atribuindo um valor que você deseja
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
Experimente isso, usando o values
atributo de um dataframe e 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
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas