私はそのような投票データセットを持っています:
republican,n,y,n,y,y,y,n,n,n,y,?,y,y,y,n,y
republican,n,y,n,y,y,y,n,n,n,n,n,y,y,y,n,?
democrat,?,y,y,?,y,y,n,n,n,n,y,n,y,y,n,n
democrat,n,y,y,n,?,y,n,n,n,n,y,n,y,n,n,y
しかし、どちらも文字列なので、整数行列に変更して、統計値hou_dat = pd.read_csv( "house.data"、header = None)にしたいと思います。
for i in range (0, hou_dat.shape[0]):
for j in range (0, hou_dat.shape[1]):
if hou_dat[i, j] == "republican":
hou_dat[i, j] = 2
if hou_dat[i, j] == "democrat":
hou_dat[i, j] = 3
if hou_dat[i, j] == "y":
hou_dat[i, j] = 1
if hou_dat[i, j] == "n":
hou_dat[i, j] = 0
if hou_dat[i, j] == "?":
hou_dat[i, j] = -1
hou_sta = hou_dat.apply(pd.value_counts)
print(hou_sta)
ただし、エラーが表示されます。解決方法は?:
Exception has occurred: KeyError
(0, 0)
Csvからのデータを処理する場合は、pandasのメソッドを使用することをお勧めします。この場合、replace
メソッドを使用して、要求したとおりに実行できます。
hou_dat.replace(to_replace={'republican':2, 'democrat':3, 'y':1, 'n':0, '?':-1}, inplace=True)
あなたはそれでこれについてもっと読むことができます ドキュメント