मुझे निम्नलिखित के साथ कोई समस्या है, जो एक साधारण कोड है जो किसी स्पोर्ट्स डेटासेट पर कुछ साधनों की गणना करता है। यदि आवश्यक हो तो मैं एक उदाहरण प्रदान कर सकता हूं कि ये डेटा कैसा दिखता है।

अभी जेनरेट किए गए डेटाफ्रेम को बैक-टू-बैक जोड़ने का प्रयास कर रहा हूं, जो मैं करने में सक्षम नहीं हूं। मूल रूप से मैं सभी डेटासेट लेना चाहता हूं (यहां दो हैं, लेकिन अधिक उपयोग किए जाने हैं), और आउटपुट के आधार पर एक समयरेखा उत्पन्न करने के लिए। सभी फाइलों में एक ही कॉलम और इंडेक्स हैं। मैं जिस कोड का उपयोग कर रहा हूं वह नीचे है:

import pandas as pd

season_list = ["2017-2018","2018-2019"]
excl_value = 10
header_list = []

for seas in season_list:
    excel_sheet = pd.read_excel(r'Data\NData' + str(seas) + '.xlsx')
    excel_sheet = excel_sheet.fillna(value = 0)
    headers = excel_sheet.columns.values.tolist()
    if headers not in header_list:
        header_list.append(headers)
    for header in header_list:
        data_mean = excel_sheet[header][excel_sheet.games >=                         
excl_value].mean()
        data_mean = round(data_mean,2)
        print(data_mean)

इसके साथ मुझे बस दो डेटासेट मिलते हैं, जो नीचे की तरह दिखते हैं:

age                   25.42
games                 22.42
games_starts          18.19

age                   24.95
games                 27.18
games_starts          22.00

ये कुछ चरों के लिए माध्य की दो अलग-अलग गणनाओं के परिणाम हैं। अब आदर्श रूप से मैं इन्हें फ़ाइल द्वारा और एक ही अनुक्रमणिका द्वारा समवर्ती रूप से तोड़ना चाहता हूं। मैं इसे नीचे की तरह काम करते हुए देखूंगा:

                    2017-2018  2018-2019
age                   25.42      24.95
games                 22.42      27.18
games_starts          18.19      22.00

इस तरह मैं मूल्यों की एक समयरेखा एक साथ बना सकता हूं। हालांकि इसे हासिल करने के लिए संघर्ष कर रहे हैं। मुझे एक सेट में सभी गणनाओं को एक साथ चलाने के बारे में कैसे जाना चाहिए? धन्यवाद!

मैंने इसे प्राप्त करने के कुछ तरीकों का पहले ही परीक्षण कर लिया है। एक बस एक्सेल शीट को .append के साथ जोड़ रहा था, लेकिन मैं कुछ मुद्दों को एक साथ नहीं आने वाले मूल्यों के साथ देख रहा हूं। मैंने केवल माध्य गणनाओं को हथियाने और उन्हें अपने स्वयं के शब्दकोश/सूची/डेटाफ़्रेम पर लागू करने के बारे में भी सोचा, लेकिन मैं वास्तव में उन्हें अपने स्वयं के सेट में धकेलने में कामयाब नहीं हुआ।

0
thamy 22 जुलाई 2019, 14:36

1 उत्तर

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

इसे आप 3 स्टेप्स से अच्छे से कर सकते हैं। भार:

sports_data = [pd.read_excel(r'Data\NData' + str(season) + '.xlsx') for season in season_list]

अब आप प्रत्येक शीट की पहचान करने के लिए एक कॉलम जोड़ना चाहेंगे ताकि आप अगले चरण में उस पर समूह बना सकें:

for i, season in enumerate(season_list):
    sports_data[i]['season'] = season

एकल डेटाफ़्रेम में संयोजित करें:

sports_data = pd.concat(sports_data)

अब हम मौसम के अनुसार समूह बनाने और माध्य लेने के लिए तैयार हैं:

sports_data.groupby('season').mean()

यह आपको देगा

                  age       games   games_starts
season          
2017-2018   26.666667   33.000000   22.333333
2018-2019   25.666667   25.666667   19.000000

अब जो कुछ बचा है, वह केवल आप जो चाहते हैं उसे प्राप्त करने के लिए इसे स्थानांतरित करना है:

sports_data.groupby('season').mean().T

enter image description here

1
Alex Fish 22 जुलाई 2019, 15:34