2016-05-11 12 views
1

私はPandasを使用して、指定された入力の散布図をプロットしようとしています。次のエラーが表示されます。stringをfloatに変換できませんでした - Pandas Read Column

入力:

tweetcricscore 34 #afgvssco 51 
tweetcricscore 23 #afgvszim 46 
tweetcricscore 24 #banvsire 12 
tweetcricscore 456 #banvsned 46 
tweetcricscore 653 #canvsnk 1 
tweetcricscore 789 #cricket 178 
tweetcricscore 625 #engvswi 46 
tweetcricscore 86 #hkvssco 23 
tweetcricscore 3 #indvsban 1 
tweetcricscore 87 #sausvsvic 8 
tweetcricscore 98 #wt20  56 

コード:私は、[1]とCOL [3]のデータポイント散布図でペアとしてCOLをプロットしようとしています

import numpy as np 
import matplotlib.pyplot as plt 
from pylab import* 
import math 
from matplotlib.ticker import LogLocator 
import pandas as pd 

df = pd.read_csv('input.csv', header = None) 

df.columns = ['col1','col2','col3','col4'] 

plt.scatter(x='col2', y='col4', s=120, c='b', label='Highly Active') 

plt.legend(loc='upper right') 
plt.xlabel('Freq (x)') 
plt.ylabel('Freq(y)') 
#plt.gca().set_xscale("log") 
#plt.gca().set_yscale("log") 
plt.show() 

4の列。

エラー

Traceback (most recent call last): 
    File "00_scatter_plot.py", line 14, in <module> 
    plt.scatter(x='col2', y='col3', s=120, c='b', label='Highly Active') 
    File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 3087, in scatter 
    linewidths=linewidths, verts=verts, **kwargs) 
    File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 6337, in scatter 
    self.add_collection(collection) 
    File "/usr/lib/pymodules/python2.7/matplotlib/axes.py", line 1481, in add_collection 
    self.update_datalim(collection.get_datalim(self.transData)) 
    File "/usr/lib/pymodules/python2.7/matplotlib/collections.py", line 185, in get_datalim 
    offsets = np.asanyarray(offsets, np.float_) 
    File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 514, in asanyarray 
    return array(a, dtype, copy=False, order=order, subok=True) 
ValueError: could not convert string to float: col2 

答えて

1

これはあなたのエラーメッセージです:

File "00_scatter_plot.py", line 14, in <module> 
    plt.scatter(x='col2', y='col3', s=120, c='b', label='Highly Active') 
ValueError: could not convert string to float: col2 

あなたが浮いているように、文字列 "COL2" を変換しようとしている見ることができるように。あなたのコードを見てとることによって

、あなたがこのような何かをしたいようだ:

plt.scatter(x=df['col2'], y=df['col4'], s=120, c='b', label='Highly Active') 

の代わり:

plt.scatter(x='col2', y='col4', s=120, c='b', label='Highly Active') 
+1

グレート!素晴らしい修正。 –

+0

あなたは大歓迎です! ;-) –

1

変更しよう:

plt.scatter(x='col2', y='col4', s=120, c='b', label='Highly Active') 

へ:

df.plot.scatter(x='col2', y='col4', s=120, c='b', label='Highly Active') 

それは私のために働いた:

enter image description here

+0

素晴らしい!ありがとう..両方のソリューションは私のために働く。 –

+1

@SitzBlogz、常に喜んで助けてください。 – MaxU

+0

私は1つの回答のみを選ぶことができるので、私は@Dot_pyを選択したいと思います。彼は最初に答えていますし、スタックポイントも少なくなっています:)もう一度答えをありがとう。 –

関連する問題