【问题标题】:How do I assign a column in a csv file by python?如何通过python在csv文件中分配一列?
【发布时间】:2021-11-15 18:06:03
【问题描述】:

我有一个要绘制的 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

【问题讨论】:

标签: python pandas csv matplotlib


【解决方案1】:

有很多方法可以做到这一点,但最简单的方法是使用pandas dataframe

首先您需要在您的环境中安装它。我看到你标记了anaconda,所以这会是这样的:

$ conda install pandas

然后将它们导入你的 python 文件(推测是 Jupyter notebook)

import pandas as pd

然后,您将使用内置的read_csv 函数将 csv 导入数据框(您可以用它做很多很酷的事情,因此请查看文档

在您的情况下,假设您只想导入第 3 和第 5 列,然后绘制它们。如果 csv 中的第一行包含标题(例如 'col3''col5'),则应自动读取并存储为列名(如果您想跳过标题读取,请添加选项 skiprows=1,如果您想要命名的列使用选项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()

或者你可以使用 pandas 数据框的built in function

data.plot.scatter(x='col1', y='col2)

【讨论】:

    【解决方案2】:

    我已经发现我需要做些什么才能让它发挥作用。以下代码描述了我的情况。

    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 中找到。

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 1970-01-01
      • 2018-10-27
      • 2014-09-10
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多