मेरे पास नामों की एक सूची है, ['name1', 'name2',... 'nameN'], जिसे मैं लूप में प्रत्येक नाम से मूल डेटाफ़्रेम को फ़िल्टर करने के बाद परिणामी डेटाफ़्रेम के नाम के रूप में उपयोग करना चाहूंगा

name1 = originaldf[originaldf.names = 'name1']

क्या आर में असाइन करने के समान पाइथन में कोई फ़ंक्शन है, जिसका उपयोग मैं इसे पूरा करने के लिए कर सकता हूं। कोई अन्य समाधान स्वागत है।

के रूप में अनुरोध किया। यहाँ एक उदाहरण है:

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
0
Jorge 13 अक्टूबर 2018, 18:09

1 उत्तर

सबसे बढ़िया उत्तर

आप इसके लिए 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)

यह नामों में प्रत्येक मान के लिए डेटाफ़्रेम सेट करता है

1
Christian Sloper 17 अक्टूबर 2018, 21:57