提取列表中的项目以分隔日期框Python/Pandas

提取列表中的项目以分隔日期框Python/Pandas,python,pandas,Python,Pandas,我正在解决一个问题,并试图将列表中的项目提取到一个单独的数据框中。如上所述,我能够基于与给定列中的值匹配的行创建数据帧的子集。现在,我尝试为列表中的每个值创建一个单独的数据帧。我提出了下面的for循环,并提出了一个错误“列表索引必须是整数或片,而不是str”。我在这里做错了什么 #filter report for a list of manufacturers manu_list = ['ford','chrysler','mercury','jeep','dodge','ferrari']

我正在解决一个问题,并试图将列表中的项目提取到一个单独的数据框中。如上所述,我能够基于与给定列中的值匹配的行创建数据帧的子集。现在,我尝试为列表中的每个值创建一个单独的数据帧。我提出了下面的for循环,并提出了一个错误“列表索引必须是整数或片,而不是str”。我在这里做错了什么

#filter report for a list of manufacturers
manu_list = ['ford','chrysler','mercury','jeep','dodge','ferrari']
df_subset = df[df['manufacturer'].isin(manu_list)]
编辑:所以我更新了我的代码,但是我试图调用数据帧,却被告知它没有定义

for i in manu_list:
     manu_list[i] = vehicles[vehicles['manufacturer'] == i]

在您的情况下,您可以使用
groupby

for i in range(len(manu_list)):
manu_list[i] = vehicles[vehicles['manufacturer'] == i]

手动列表中的
i
为您提供列表中的元素,而不是索引


将周期编辑为
,以便在len中输入i(手动列表)

手动列表是一个列表,但是当您设置它时,您希望它是一个字典,如下所示:

df_subset = df[df['manufacturer'].isin(manu_list)]
l = [ y for x , y in df_subset.groupby('manufacturer')]
那你就可以了

manu_list={'ford': [], 'jeep': [] ...}
当你尝试

手动列表中的i的
:
打印(一)

您会注意到,它会将每个列表项打印为字符串,而不是它们的索引。 因此您得到一个错误。因为没有
manu列表['ford']

而是使用:

for i in manu_list:
    manu_list[i].append(vehicles[vehicles['manufacturer'] == i])


以此类推

这个
manu_list[i]
就是你做错的。
manu_list
是一个列表,你不能用字符串
i
对它进行索引。相反,如果
manu_dict={}
循环:
manu_dict[i]=…
我可能会让这比我必须做的更常见,我试图用manu_list[I]语句来命名数据帧。车辆[vehicles['manufacturer']==I]是我的语句,用于选择列表中注明制造商的所有行。因此,输出将是一个数据帧,其中所有行都与列表中的每个条目匹配,并命名为不同的名称。好的,我认为我们正在接近。您想要一些新的筛选列表(manu_list[i])装满了你的车辆制造商?在你的情况下,似乎你想用你不可见的车辆数据框覆盖你的制造清单。你能用你的车辆数据框编辑你的帖子吗?至少是一个摘录我道歉。我可能不够清楚。我的第一组代码正确地输出了包含所有信息的数据框与其中一个制造商匹配的跳线。我试图做的是获取相同的列表,而不是输出一个数据帧,而是为列表中的每个制造商输出一个单独的数据帧。manu_列表[I]语句只是我对数据帧命名约定的尝试。这不一定是名称,只是想弄清楚如何处理它。
for i in range(len(manu_list)):
print(manu_list[i])