我想创建一个图表过滤数据从csv。一个图表创建,但没有内容。
下面是代码和结果:
# var 4 graph
xs = []
ys = []
name = "Anna"
gender = "F"
state = "CA"
# 4 reading csv file
import pandas as pd
# reading csv file
dataFrame = pd.read_csv("../Kursmaterialien/data/names.csv")
#print("DataFrame...\n",dataFrame)
# select rows containing text
dataFrame = dataFrame[(dataFrame['Name'] == name)&dataFrame['State'].str.contains(state)&dataFrame['Gender'].str.contains(gender)]
#print("\nFetching rows with text ...\n",dataFrame)
print(dataFrame)
# append var with value
xs.append(list(dataFrame['Year']))
ys.append(list(dataFrame['Count']))
#xs.append(list(map(str,dataFrame['Year'])))
#ys.append(list(map(str,dataFrame['Count'])))
print(xs)
print(ys)
Result from print(xs) and print(ys)
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot(xs,ys)
plt.show()
Resulting plot
我看到变量以两个括号开头,但不知道这是否是问题所在以及如何解决它。
图形外观应为something like this
1条答案
按热度按时间6mzjoqzu1#
您对两个括号的判断是正确的,您必须从内括号中提取数据,这可以通过将indice设置为
0
来获取第一列(也是唯一的一列)。这应该行得通:
使用您的双括号,plt. plot将每对点绘制为不同的元素。绘制点不会绘制线,因为默认情况下标记是关闭的。如果您尝试向绘图添加标记,您将看到不同颜色的标记,但不会看到线。