python - 读取 CSV 文件中的行并附加列表会为每个值创建一个列表列表

标签 python list csv

我正在复制 DataCamp 类(class)中的列表输出数据,以便可以在 Visual Studio Code 或 Jupyter Notebook 中重新创建练习。在 DataCamp Python 交互窗口中,我输入列表名称,突出显示输出并将其粘贴到 VSCode 中的新文件中。我使用查找和替换删除所有逗号和空格,现在有 142 个数值,并且我另存为 life_exp.csv。看起来像这样:

    43.828
    76.423
    72.301
    42.731
    75.32
    81.235
    79.829
    75.635
    64.062
    79.441

当我使用 Pandas read_csv 或 csv.reader 将文件读入 VSCode 并使用带有 Pandas 的 value.tolist() 或 for 循环来附加现有的空白列表时,这两种情况都会为我提供一个列表列表,然后当我尝试创建 matplotlib 直方图时,无法正确显示数据。

我使用记事本和 .csv 格式保存数据,两种保存数据的方法都会产生相同的问题。

import matplotlib.pyplot as plt 
import csv
life_exp = []

with open ('C:\data\life_exp.csv', 'rt') as life_expcsv:
    exp_read = csv.reader(life_expcsv, delimiter = '\n')
    for row in exp_read:
      life_exp.append(row)

还有

import pandas as pd 
life_exp_df = pd.read_csv('c:\\data\\life_exp.csv', header = None)
life_exp = life_exp_df.values.tolist()

当您使用 csv 导入后打印 life_exp 时,您会得到:

[['43.828'],
 ['76.423'],
 ['72.301'],
 ['42.731'],
 ['75.32'],
 ['81.235'],
 ['79.829'],
 ['75.635'],
 ['64.062'],
 ['79.441'],
 ['56.728'],
….

当您使用 pandas read_csv 导入后打印 life_exp 时,您会得到相同的结果,但至少现在它不是字符串:

[[43.828],
 [76.423],
 [72.301],
 [42.731],
 [75.32],
 [81.235],
 [79.829],
 [75.635],
 [64.062],
 [79.441],
 [56.728],
…

当您在列表的任一版本上调用 plt.hist(life_exp) 时,您将获得每个值为 1 的值。

我只想读取 csv 文件中的每个值并将每个值放入一个简单的 Python 列表中。

我花了几天时间在 stackoverflow 上搜索,认为有人已经这样做了,但我似乎找不到答案。我对 Python 非常陌生,非常感谢您的帮助。

最佳答案

尝试:

import pandas as pd 
life_exp_df = pd.read_csv('c:\\data\\life_exp.csv', header = None)

# Select the values of your first column as a list
life_exp = life_exp_df.iloc[:, 0].tolist()

而不是:

life_exp = life_exp_df.values.tolist()

关于python - 读取 CSV 文件中的行并附加列表会为每个值创建一个列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57512709/

相关文章:

Python - 正则表达式西里尔字母与拉丁字母混合

python - 在Python中向列表中添加多个元素

Javascript 强制 csv 文件重新加载 (amcharts)

csv - 将 pandas 列转换为逗号分隔列表以在 sql 语句中使用

python - Python < 3 中是否有类似 'nonlocal' 的内容?

python - 复杂的上下文菜单子(monad)菜单

python - 释放python中所有使用的内存

java - 将整数数组添加到 ArrayList<int[]>

python - 如何从 Python 中的文件中读取多行列表?

c - 在C代码中读取同一个文件两次