我有一个名称列表,['name1', 'name2',... 'nameN']
在按for循环中的每个名称过滤原始数据框后,我想用作结果数据框的名称
name1 = originaldf[originaldf.names = 'name1']
python中是否有一个函数,类似于R中的assign,我可以用它来完成此任务。欢迎任何其他解决方案。
按照要求。这是一个例子:
names = ['name1', 'name2', 'name3']
f = pd.DataFrame({'names' : np.random.choice(names, size=15)})
name1 = df[df.names=='name1']
name2 = df[df.names=='name2']
name3 = df[df.names=='name3']
# Then:
display(name1, name2, name3)
names
1 name1
2 name1
3 name1
4 name1
5 name1
names
0 name2
7 name2
names
6 name3
8 name3
9 name3
10 name3
11 name3
12 name3
13 name3
14 name3
您可以为此使用setattr,但是我(和其他人一样)强烈建议使用字典。
import sys
import pandas as pd
thismodule = sys.modules[__name__]
names = ['name1', 'name2', 'name3']
for i in names:
setattr(thismodule, i,df[df.names==i])
display(name1,name2,name3)
这会将数据框设置为名称中的每个值
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句