分散を計算するためにこれらをプログラムしました
import pandas as pd
import xlrd
import numpy as np
import matplotlib.pyplot as plt
credit_card=pd.read_csv("default_of_credit_card_clients_Data.csv",skiprows=1)
print(credit_card.head())
for col in credit_card:
var[col]=np.var(credit_card(col))
print(var)
このエラーが発生しています
トレースバック(最新の最後の呼び出し):ファイル "C:/Python34/project.py"、行11、var [col] = np.var(credit_card(col))TypeError: 'DataFrame'オブジェクトは呼び出し不可
解決策が評価されます。
必要なようです DataFrame.var
:
デフォルトではN-1で正規化されています。これはddof引数を使用して変更できます
var1 = credit_card.var()
サンプル:
#random dataframe
np.random.seed(100)
credit_card = pd.DataFrame(np.random.randint(10, size=(5,5)), columns=list('ABCDE'))
print (credit_card)
A B C D E
0 8 8 3 7 7
1 0 4 2 5 2
2 2 2 1 0 8
3 4 0 9 6 2
4 4 1 5 3 4
var1 = credit_card.var()
print (var1)
A 8.8
B 10.0
C 10.0
D 7.7
E 7.8
dtype: float64
var2 = credit_card.var(axis=1)
print (var2)
0 4.3
1 3.8
2 9.8
3 12.2
4 2.3
dtype: float64
numpy.var
のnumpyソリューションが必要な場合:
print (np.var(credit_card.values, axis=0))
[ 7.04 8. 8. 6.16 6.24]
print (np.var(credit_card.values, axis=1))
[ 3.44 3.04 7.84 9.76 1.84]
違いは、デフォルトではpandas
のddof=1
ですが、0
に変更できるためです:
var1 = credit_card.var(ddof=0)
print (var1)
A 7.04
B 8.00
C 8.00
D 6.16
E 6.24
dtype: float64
var2 = credit_card.var(ddof=0, axis=1)
print (var2)
0 3.44
1 3.04
2 7.84
3 9.76
4 1.84
dtype: float64