2017-05-09 15 views
0

私はいくつかのメトリックを計算するために巨大なフラットファイルを持っています。ほとんどのメトリックは行数や列数などの単純なもので簡単に実現できます。私に問題を与えているのは、平均列サイズです。パンダを使用した平均カラムサイズ

たとえば、ここにサンプルファイルがあります

header1|header2|header3|header4|header5 
this|is|1|12-Dec-1995|0xFF1 
is||57|14-Jan-2014|| 

ファイルの平均サイズをどのように計算するのですか? str.len()を実行すると、文字列以外の列に遭遇するとエラーになります。あなたの助け

+0

「列の幅」を意味しますか?この目的のために、すべての値を文字列として扱いたいですか? – DyZ

答えて

0

ため

おかげであなたが意味「列のサイズ」「列幅」で、これは動作するはず場合:

df.fillna('').astype(str).apply(lambda x:x.str.len()).mean() 
#header1  3.0 
#header2  1.0 
#header3  1.5 
#header4 11.0 
#header5  2.5 
#dtype: float64 

ところで、あなたのファイルには、余分を持っています「|」最後の行の最後に。

+0

私はread_csvにもう1つのオプションを追加する必要があり、これはとても感謝してくれました。私はdtype = {'header3':np.str}を列の1つに追加しました。なぜなら、dfはデータ型を見つけられず、それは失敗していたからです。 –

関連する問題