簡體   English   中英

未正確調用 DataFrame 構造函數

[英]DataFrame constructor not properly called

我正在嘗試使用 Python 創建一個數據框,這會在問題標題中引發錯誤

  # pre processing to get G-Test score
    def G_test(tokens, types):
        tokens_cnt = tokens.value_counts().astype(float)
        types_cnt = types.value_counts().astype(float)
        total_cnt = float(sum(tokens_cnt))
    
        # calculate each token counts
        token_cnt_table = collections.defaultdict(lambda : collections.Counter())
        for _tokens, _types in zip(tokens.values, types.values):
            token_cnt_table[_tokens][_types] += 1
    

 tc_dataframe = pd.DataFrame(token_cnt_table.values(), index=token_cnt_table.keys())

        tc_dataframe.fillna(0, inplace=True)
        for column in tc_dataframe.columns.tolist():
            tc_dataframe[column+'_exp'] = (tokens_cnt / total_cnt) * types_cnt[column]
            c_dataframe[column+'_GTest'] = [G_test_score(tkn_count, exp) for tkn_count, exp in zip(tc_dataframe[column], tc_dataframe[column+'_exp'])]
            return tc_dataframe

pd.DataFrame構造函數不接受字典視圖作為數據。 您可以改為轉換為list 這是一個最小的例子:

d = {'a': 1, 'b': 2, 'c': 3}

df = pd.DataFrame(d.values(), index=d.keys())
# PandasError: DataFrame constructor not properly called!

df = pd.DataFrame(list(d.values()), index=d.keys())
# Works!

文檔確實建議這樣做:

數據numpy ndarray(結構化或同類)、dict 或 DataFrame

等效地,您可以使用pd.DataFrame.from_dict ,它直接接受字典:

df = pd.DataFrame.from_dict(d, orient='index')

這對我有用

df = pd.Dataframe([data])

暫無
暫無

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

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