निम्नलिखित कोड का उपयोग करके मैं दुनिया भर में, प्रति देश वर्तमान COVID-19 मामलों के साथ एक साधारण तालिका बना सकता हूं:
url = "https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
raw_data = pd.read_csv(url, sep=",")
raw_data.drop(['Province/State','Lat','Long'], axis = 1, inplace = True)
plot_data = raw_data.groupby('Country/Region').sum()
प्लॉट_डेटा एक साधारण डेटाफ़्रेम है:
मैं अब क्या करना चाहता हूं कि प्रत्येक कॉलम के मूल्यों को पहले दिन कॉलम पर मानों से घटाना है - यानी, मैं प्रति दिन नए मामले प्राप्त करना चाहता हूं।
अगर मैं कुछ ऐसा करता हूं जैसे plot_data['3/30/20'].add(-plot_data['3/29/20']), यह अच्छी तरह से काम करता है। लेकिन अगर मैं कुछ ऐसा करता हूं जैसे plot_data.iloc[:,68:69].add(-plot_data.iloc[:,67:68]), मुझे NaN मानों के साथ दो कॉलम मिले। अर्थात। पायथन डी कॉलम हेडर को "संरक्षित" करने की कोशिश करता है और ऑपरेशन को उस तरह से नहीं करता है जैसा मैं चाहता हूं।
मेरा लक्ष्य इस ऑपरेशन को "सुरुचिपूर्ण तरीके से" करना था। मैं कुछ प्लॉट_डेटा.आईलोक[:,1:69].add(-plot_data.iloc[:,0:68]) की तर्ज पर कुछ सोच रहा था। लेकिन निश्चित रूप से, यदि यह एकल-स्तंभ उदाहरण के रूप में काम नहीं करता है, तो यह कई स्तंभों के साथ भी काम नहीं करता है (क्योंकि पायथन कॉलम हेडर से मेल खाएगा और शून्य/NaN मानों का एक गुच्छा लौटाएगा)।
हो सकता है कि डेटाफ्रेम के साथ ऑपरेशन के दौरान हेडर को अनदेखा करने के लिए पाइथन को बताने का कोई तरीका हो? मुझे पता है कि मैं अपने डेटाफ्रेम को एक न्यूमपी सरणी में बदल सकता हूं और संचालन का एक समूह कर सकता हूं। हालांकि, चूंकि यह एक साधारण/छोटी तालिका है, मैंने सोचा कि मैं डेटाफ्रेम डेटा प्रकार का उपयोग जारी रखने की कोशिश करूंगा।
2 जवाब
बहुत बहुत धन्यवाद @ सर्ज बैलेस्टा! आपका उत्तर बिल्कुल "सुरुचिपूर्ण समाधान" का प्रकार है जिसे मैं ढूंढ रहा था। एकमात्र टिप्पणी यह है कि शिफ्ट का संकेत "सकारात्मक" होना चाहिए।
प्लॉट_डेटा - प्लॉट_डेटा.शिफ्ट(1, अक्ष = 1)
इस तरह हम एक दिन ऐतिहासिक आंकड़ों को आगे लाते हैं और अब मैं इसे प्रत्येक दिन की वास्तविक संख्याओं से घटा सकता हूं।
अच्छे पुराने shift
का उपयोग क्षैतिज अक्ष पर किया जा सकता है:
plot_data - plot_data.shift(-1, axis=1)
आप जो चाहते हैं वह होना चाहिए।
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।