【发布时间】:2016-12-22 13:25:24
【问题描述】:
我有两个 csv 文件,每个文件都有一列。 该列在他们之间共享信息,例如PassengerId、Name、Sex、Age。等等
我正在尝试绘制每个标题(先生、夫人等)的乘客分布年龄的箱形图。我得到一个错误。如何传递可以绘制绘图的错误?
import csv as csv
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
csv_file_object = csv.reader(open('test.csv', 'r'))
header = next(csv_file_object)
data=[]
for row in csv_file_object:
data.append(row)
data = np.array(data)
csv_file_object1 = csv.reader(open('train.csv', 'r'))
header1 = next(csv_file_object1)
data1=[]
for row in csv_file_object:
data1.append(row)
data1 = np.array(data1)
Mergerd_file = header.merge(header1, on='PassengerId')
df = pd.DataFrame(Mergerd_file, index=['pAge', 'Tilte'])
df.T.boxplot(vert=False)
plt.subplots_adjust(left=0.25)
plt.show()
我收到错误这个错误
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-23-0d7fafc1fcf9> in <module>()
21
22
---> 23 Mergerd_file = header.merge(header1, on='PassengerId')
24
25 df = pd.DataFrame(Mergerd_file, index=['pAge', 'Tilte'])
AttributeError: 'list' object has no attribute 'merge'
【问题讨论】:
-
请注意,Python 2 并没有对此抱怨,但稍后会抱怨“AttributeError: '_csv.reader' object has no attribute 'merge'”。
-
这与 pandas 中的箱线图无关。顺便说一句,如果您使用熊猫,则直接使用
pd.read_csv()导入您的数据框,然后使用pd.concat并使用seaborn绘制箱线图。如果您的问题更多是关于如何使用 csv 库,请删除所有不必要的部分,或提出单独的问题并使其更清晰 -
我的目标是使用 pandas jrjc 绘制每个标题的乘客年龄分布的箱线图
-
我有点困惑——在csv中没有
title列,你认为Sex列吗?