[英]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.