。在你的for循环一个错字:
for steps in range [group]:
应该
for steps in range(group):
您的循环试图调用__getitem__
上range
,但由于这种方法没有定义对于range
,你会得到一个TypeError: 'type' object is not subscriptable
。查询python documentation for getitem()了解更多详情。
但是,您不能在熊猫Series
上使用range
来循环其中的每个项目,因为range
在输入时需要整数。相反,你应该使用:
for steps in group:
这将循环遍历CSV文件的每一行,并输出每行的完全一样的情节。我很确定这不是你真正想要做的。
如果我很好地理解你的问题,你想绘制你在csv中的每组实验/控制值。
那么你应该尝试(未经测试):在本集团列的每一块数据的
import pandas as pd
import numpy as np
import matplotlib as plt
df = pd.read_csv('C:\\Users\\User\\Desktop\\Ubiome samples\\samples.csv')
for group in df['Group'].unique():
group_data = df[df['Group'] == group]
plt.plot(group_data['Time'], group_data['Count'], 'bs')
plt.show()
for group in df['Group'].unique()
将循环,忽略重复。例如,如果你的列中有1000个字符串,但所有这些字符串都是“实验”或“控制”,那么这将循环超过['experimental', 'control']
(实际上是一个numpy数组,也请注意unique()
不排序,所以输出的顺序取决于输入的顺序)。
df[df['Group'] == group]
将选择列'组'等于组的所有行。 查询pandas documentation for where method and masking了解更多详情。
这个特殊的错误来自'range [group]'。调用range的正确方法是'range(n)',其中'n'是一个整数。 [请参阅文档。](https://docs.python.org/3.6/library/stdtypes.html#range)您可能还有其他问题。如需更多帮助,请考虑提供几行代码,使我们可以使用数据框。 – saintsfan342000