我正在复制 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/