簡體   English   中英

Python Pandas 中歸零數據幀/列的最快方法

[英]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.fillvalues屬性:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM