[英]Fastest Way to Zero dataframe/column in Python Pandas
有沒有比像這樣遍歷 dataframe(其中 A、B 和 C 是列名)更快的方法將 pandas dataframe 列歸零:
while x < Framelength
dg.iloc[x, A] = 0
dg.iloc[x, B] = 0
dg.iloc[x, C] = 0
x+=1
如果這樣會更快,我可以將整個 dataframe 清零
檢查
cols=[...]
df.loc[:, cols]=0
要通過調用列的名稱將列中的所有行歸零,您可以執行以下操作:
df["A"] = 0
df["B"] = 0
如果你想將整個 DataFrame 歸零,但我相信這樣的事情應該非常有效:
for c in df:
df[c].values[:] = 0
您可以將整個 dataframe 清零:
df[df.columns] = 0
或指定列的列表(可迭代):
cols = list("ABC")
df[cols] = 0
我會使用一個簡單的方法來說明一個條件並分配一個你想要的值
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
試試這個,使用 dataframe 和np.array.fill
的values
屬性:
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.