2017-12-15 25 views
0

私はPythonの初心者です。データフレームにデータを1行読み込み、その値をインデックスに付けて行の各値の発生回数を取得しようとしています。これは、これまでの私のコードです:pandasデータフレームのインデックスが認識されない

import pandas as pd 
csv=pd.read_csv('filepath/data.csv', 'r', converters={'csv':str}) 
df=DataFrame(csv, columns=['data'], index=['0.0', '750.0']) 
df 

私はちょうどで読んだ後「CSV」を表示すると、それは次のようになります。私はしかし、データフレームに入力し、それをしようとすると

0.0 750.0 750.0 750.0 750.0 750.0 750.0 

、私は

data 
0.0 NaN 
750.0 NaN 

私が得ることを望んだ何を::

data 
0.0 1 
750.0 6 
この結果を得ます

事前に任意の洞察に感謝します!

+1

'DF = DATAFRAME(CSV、列= [ 'データ'])'、その後ん 'DF [ 'データ']。返信@Wenため – Wen

+0

感謝をvalue_counts'! 私のデータが文字列としてインポートされていてもfloat64であると思われているようです...? – muddypaws

+0

次に、data.value_countsが必要です – Wen

答えて

1

Pandas read_csvは、複数の行と列を持つ表形式のデータ用に設計されています。データファイルの値が1行しかない場合は、Pythonのopen()を使用して直接読み取るのがよりクリーンです。これらの結果がリストに登録されると、pandas value_countsメソッドでリストの各値のカウントが取得されます。

values = open('data.csv').read().split() 
pd.Series(values).value_counts() 
# 750.0 6 
# 0.0  1 
# dtype: int64 
+0

これはトリックでした!説明をいただきありがとうございます! – muddypaws

関連する問題