[英]How do I assign a column in a csv file by python?
我有一个要绘制的 CSV 文件。
但是,要获得此图,我需要先将一列分配给列表(或数组),然后从那里继续。 我需要将第一列分配给所述列表。 在上述列中,数字 1 到 45 有很多重复(所以在代码中应该是range(1,46)
)。 目前,我到目前为止已经写了这个:
for weekly sales against Date
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline
a = []
for stn in range(1,46):
a.append(walmart[walmart.Store == stn])
for printval in range(1,46):
b = a[printval-1]
注意: walmart
(与数据集关联的值)已经被pd.read_csv
读取到这里。 它有效并且已经产生了输出。
我不知道该怎么做。 我也想根据商店来绘制这个图。
数据集可以在:https ://www.kaggle.com/divyajeetthakur/walmart-sales-prediction
有很多方法可以做到这一点,但想到的最简单的方法是使用Pandas 数据框
首先,您需要在您的环境中安装它。 我看到你标记了anaconda
所以这将是这样的:
$ conda install pandas
然后将它们导入你的 python 文件(假设是 Jupyter notebook)
import pandas as pd
然后,您可以使用read_csv函数中的构建将 csv 导入数据帧(您可以用它做很多很酷的事情,因此请查看文档)
在您的情况下,假设您只想导入列说数字 3 和 5,然后绘制它们。 如果 csv 中的第一行包含标题(比如'col3'
和'col5'
),这应该被自动读取并存储为列名(如果你想跳过标题阅读添加选项skiprows=1
,如果你想names=['newname3', 'newname5']
名为其他names=['newname3', 'newname5']
的列使用选项names=['newname3', 'newname5']
data = pd.read_csv('path/to/my.csv', usecols=[3,5], names=['col1', 'col2'])
然后您可以按名称访问列并使用data['colname']
绘制它们:
import matplotlib.pyplot as plt
plt.scatter(data['col1'], data['col2'])
plt.show()
或者您可以使用熊猫数据框的内置功能:
data.plot.scatter(x='col1', y='col2)
我已经发现我需要做些什么才能让它发挥作用。 下面的代码描述了我的情况。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
%matplotlib inline
a = []
for stn in range(1,46):
a.append(walmart[walmart.Store == stn])
for printval in range(1,46):
b = a[printval-1]
w = b[b.Store == printval]
ws = w["Weekly_Sales"]
tp = w["Date"]
plt.scatter(tp, ws)
plt.xlabel('Date')
plt.ylabel('Weekly Sales')
plt.title('Store_' + str(printval))
plt.savefig('Store_'+ str(printval) + '.png') #To save the file if needed
plt.show()
同样,我已经导入了 CSV 文件,并将其关联到walmart
。 这样做时没有错误。
同样,数据集可以在https://www.kaggle.com/divyajeetthakur/walmart-sales-prediction 中找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.