【问题标题】:how to create multidimensional array from CSV in Python如何在 Python 中从 CSV 创建多维数组
【发布时间】:2020-06-22 15:39:27
【问题描述】:

我想从 CSV 文件创建多维表。它应该由两个连接的列分组。我的 CSV 文件有一个结构(数据是我的想象):

Year,Country,Sex,Population
1990,USA,M,178
1990,USA,F,179
2000,USA,M,180
2000,USA,F,181
1990,France,M,51
1990,France,F,52
2000,France,M,51
2000,France,F,53

我需要使用 matplotlib 在绘图上显示该数据,因此我决定创建三个多维表,其中年份是 X 轴,人口是 Y 轴,连接的国家和性别是标签。

【问题讨论】:

标签: python arrays csv plot


【解决方案1】:

有两种主要方法可以做到这一点。用熊猫或硬编码来做。我更喜欢用熊猫来做。这是一个例子:

import pandas
df = pandas.read_csv('data.csv')
print(df)

这将为您提供最简单的结果。现在有几种方法可以访问数据。但是,如果您继续开发此应用程序,您甚至可能不需要它。但是您仍然可以使用以下方法访问创建的 pandas DataFrame:

# Using `iloc[]`
print(df.iloc[0][0])

# Using `loc[]`
print(df.loc[0]['Sex'])

# Using `at[]`
print(df.at[0,'Population'])

# Using `iat[]`
print(df.iat[0,0])

这就是您使用 pandas 制作多维“数组”的方法。我把它放在引号中,因为它是一个实际上创建的数据框,而不是一个数组。希望它可以帮助您开发此程序。我建议在本教程中阅读如何使用 matplotlib 和 pandas 进行绘图 https://queirozf.com/entries/pandas-dataframe-plot-examples-with-matplotlib-pyplot

【讨论】:

    【解决方案2】:

    您应该为此使用csv 模块。这对我很有用。

    • 首先,我们将数据保存在data.csv 的CSV 文件中。
    • 然后导入csv模块并将每行csv追加到一个空的ndarray中
    import csv
    
    arr = []
    
    with open("data.csv") as csvfile:
        reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC) # change contents to floats
        for row in reader: # each row is a list
            arr.append(row)
    
    print(arr)
    
    • 这会输出所需的多维数组
    [['Year,Country,Sex,Population'],
     ['1990,USA,M,178'],
     ['1990,USA,F,179'],
     ['2000,USA,M,180'],
     ['2000,USA,F,181'],
     ['1990,France,M,51'],
     ['1990,France,F,52'],
     ['2000,France,M,51'],
     ['2000,France,F,53']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2021-03-03
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      相关资源
      最近更新 更多