python - 无法将字符串转换为 float - Pandas 阅读专栏

标签 python pandas matplotlib data-visualization scatter-plot

我正在尝试使用 Pandas 为给定输入绘制散点图。我收到以下错误。

输入:

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

代码:

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 列中将 col[1] 和 col[3] 数据点绘制为散点图中的对。

错误

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

最佳答案

这是您的错误消息:

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”转换为 float 。

通过查看您的代码,您似乎想要这样的东西:

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')

关于python - 无法将字符串转换为 float - Pandas 阅读专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169107/

相关文章:

Pythonunittest : setUpClass(), 未调用tearDownClass()、setUpModule() 和tearDownModule()

python-3.x - Pandas:升级后无法加载 Pickle 文件(0.22 到 0.23):

python - 散点图上的颜色 Python Matplotlib

python - 轴在图上不按顺序

python - 如何在networkx.draw_networkx中获取颜色条?

python - ValueError : not enough values to unpack (expected 2, 在 Django 框架中得到 1)

python - Pycharm Jupyter 交互式 Matplotlib

python - 因为我可以在 exp reg 中格式化一个句子?

python - 如何在不丢失列的情况下将列(类别类型)转换为列?

python-3.x - 在 Python 中设置模拟数据库进行单元测试