如何在 Python 中使用 csv 中的字符串创建图表或折线图

Posted

技术标签:

【中文标题】如何在 Python 中使用 csv 中的字符串创建图表或折线图【英文标题】:How to create chart or line graph in Python with strings in csv 【发布时间】:2018-05-02 12:21:34 【问题描述】:

我的 csv 文件包含用于数字的 $ 符号和逗号(附截图)。

如何用它创建一个简单的折线图。我必须转换它并删除 $ 符号吗?

 price_index = pandas.read_csv("houses_price_index_losangeles.csv") 

 price_index['Los Angeles'] 
 price = price_index['Los Angeles'] 
 month = price_index['Month-Year'] 
 plt.plot(price,month,'g',label='Tarzana')
 plt.title('Houses for sale')
 plt.ylabel('Prices')
 plt.xlabel('Year')

 plt.legend()

 plt.grid(True,color='k')

 plt.show()

【问题讨论】:

是的,这是数字数据。你应该这样做。 price_index['Los Angeles'] = price_index['Los Angeles'].str.replace('[^\d.]', '').astype(float)转换它然后绘图。 那么“Jan-90”如何使它成为数字 90?谢谢 【参考方案1】:

您需要从价格列中删除所有非数字字符,并将Month-Year 列转换为datetime 对象:

import matplotlib.pyplot as plt
import pandas as pd

price_index = pd.read_csv("houses_price_index_losangeles.csv", delimiter='\t') 
price_index['Los Angeles'] = price_index['Los Angeles'].str.replace('[^\d.]', '').astype(int)
price_index['Month-Year'] = pd.to_datetime(price_index['Month-Year'], format='%b-%y')

price_index.plot(x='Month-Year')
plt.title('Houses for sale')
plt.ylabel('Prices')
plt.xlabel('Year')
plt.legend()
plt.grid(True, color='k')
plt.show()

给你:

【讨论】:

以上是关于如何在 Python 中使用 csv 中的字符串创建图表或折线图的主要内容,如果未能解决你的问题,请参考以下文章

如何从csv文件中读取python中的数字?

如何获取 ADLS Gen2 文件的最后修改日期并将其保存到 python 中的 csv

说说如何利用 Python 处理 CSV 文件

如果检测字符串中的CSV列使用python在日志文件中存在吗?

读取csv字典变成str了怎么办

如何使用python修复在bigquery中上传csv文件