मेरे पास 40 सुविधाओं के साथ 7000 पंक्तियों का एक बड़ा डेटा सेट है। मैं मूल से पंक्तियों के साथ दो नए डेटा फ़्रेम बनाना चाहता हूं। मैं यह चुनना चाहता हूं कि कौन सी पंक्तियां 1 डी numpy सरणी से मानों का उपयोग करके डेटाफ्रेम में जाती हैं, फिर मूल डेटाफ्रेम की अनुक्रमणिका के विरुद्ध सरणी में मानों की तुलना करें और यदि वे मेल खाते हैं, तो मैं मूल डेटाफ्रेम की पूरी पंक्ति लेना चाहता हूं और इसे नए डेटाफ्रेम में जोड़ें।

#reading in my cleaned customer data and creating the original dataframe.
customer_data = pd.read_excel('Clean Customer Data.xlsx', index_col = 0)
#this is the 1D array that has a single element that corresponds to the index number of customer_data
group_list = np.array([2045,323,41,...,n])
# creating the arrays with a slice from group_list with the values of the row indexes for the groups
group_1 = np.array(group_list[:1972])
group_2 = np.array(group_list[1972:])
for X in range(len(group_list):
    i = 0
    #this is where I get stuck
    if group_1[i] == **the index of the original dataframe**
        group1_df = pd.append(customer_data)
    else:
        group2_df = pd.append(customer_data)
    i = i+1

जाहिर है, मेरे पास कुछ गंभीर वाक्यविन्यास और संभवतः कुछ गंभीर तर्क मुद्दे हैं जो मैं कर रहा हूं, लेकिन मैं अब एक सप्ताह के लिए इस दीवार के खिलाफ अपना सिर मार रहा हूं, और मेरा दिमाग मश है।

मैं जो होने की उम्मीद करता हूं वह यह है कि 2045 के मूल डेटा फ्रेम इंडेक्स में पंक्ति group1_df में जाएगी।

अंततः, मैं दो डेटा फ़्रेम (group1_df और group2_df) बनाना चाह रहा हूँ, जिनमें मूल डेटासेट के समान सुविधाएँ हों, पहले वाले में 1,972 रिकॉर्ड हैं और दूसरे में 5,028 हैं।

डेटासेट कुछ इस तरह दिखता है: मैं जिस डेटा सेट के साथ काम कर रहा हूं उसकी कॉपी

2
Lesley 13 जुलाई 2019, 22:37

2 जवाब

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

यदि आपका संख्यात्मक सरणी a है, और आपका डेटाफ़्रेम df है,

group1_df = df.loc[df.index.isin(a[:1972]), :]
group2_df = df.loc[df.index.isin(a[1972:]), :]
0
run-out 13 जुलाई 2019, 22:58

संरेखित करने के लिए DataFrame.reindex पर विचार करें प्रत्येक समूह customer_data के सूचकांकों के साथ मान रखता है।

customer_data = pd.read_excel('Clean Customer Data.xlsx', index_col = 0)

group_list = np.array([2045,323,41,...,n])

group1_df = customer_data.reindex(group_list[:1972], axis = 'index')
group2_df = customer_data.reindex(group_list[1972:], axis = 'index')
1
Parfait 13 जुलाई 2019, 22:56