簡體   English   中英

Python dataframe class __init__ 奇怪的行為

[英]Python dataframe class __init__ weird behaviour

所以我試圖在我的項目中重組文件並創建以下 class

文件:合並.py

class DataFrame:
def __init__(self):
    self.df = pd.DataFrame()

在其他文件中我稱之為

文件:merge_files.py

from merge import Dataframe
dfx = DataFrame()

這是 output 用於:

print(dfx)

OUTPUT:

<merge.DataFrame object at 0x81503d790>

如果我打印以下內容:

print(dfx.df)

OUTPUT:

Empty DataFrame
Columns: []
Index: []

我搜索了幾個小時,沒有找到答案。 有人可以解釋一下並提出如何僅使用 dfx 而不是dfx.df來清空dataframe

非常感謝

您的代碼當前所做的是創建一個通用的 object,它具有存儲 pandas DataFrame 的字段 df。因此,空數據幀是 object 的一個字段,而不是 object 本身。

相反,您想繼承 pandas DataFrame class,這樣當您實例化 DataFrame class 時,它也是 pandas DataFrame。

import pandas as pd
class MyDataFrame(pd.DataFrame):
    def __init__(self):
        super().__init__()
        
print(MyDataFrame())

我最終修改了 Michael 的代碼,因此一種方法執行兩項任務,請參見下面的代碼

class NewDataFrame(pd.DataFrame):
def __init__(self,df: pd.DataFrame):
    super().__init__(df)

調用示例:

1. df = NewDataFrame(None)
2. df = NewDataFrame(pd.DataFrame(columns=constant.COLUMNS_REPORT))
3. df = NewDataFrame(df_something)

感謝大家的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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