निम्नलिखित कोड का उपयोग करके मैं दुनिया भर में, प्रति देश वर्तमान 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()

प्लॉट_डेटा एक साधारण डेटाफ़्रेम है:

enter image description here

मैं अब क्या करना चाहता हूं कि प्रत्येक कॉलम के मूल्यों को पहले दिन कॉलम पर मानों से घटाना है - यानी, मैं प्रति दिन नए मामले प्राप्त करना चाहता हूं।

अगर मैं कुछ ऐसा करता हूं जैसे 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 मानों का एक गुच्छा लौटाएगा)।

हो सकता है कि डेटाफ्रेम के साथ ऑपरेशन के दौरान हेडर को अनदेखा करने के लिए पाइथन को बताने का कोई तरीका हो? मुझे पता है कि मैं अपने डेटाफ्रेम को एक न्यूमपी सरणी में बदल सकता हूं और संचालन का एक समूह कर सकता हूं। हालांकि, चूंकि यह एक साधारण/छोटी तालिका है, मैंने सोचा कि मैं डेटाफ्रेम डेटा प्रकार का उपयोग जारी रखने की कोशिश करूंगा।

0
Rational-IM 31 मार्च 2020, 16:38

2 जवाब

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

बहुत बहुत धन्यवाद @ सर्ज बैलेस्टा! आपका उत्तर बिल्कुल "सुरुचिपूर्ण समाधान" का प्रकार है जिसे मैं ढूंढ रहा था। एकमात्र टिप्पणी यह ​​है कि शिफ्ट का संकेत "सकारात्मक" होना चाहिए।

प्लॉट_डेटा - प्लॉट_डेटा.शिफ्ट(1, अक्ष = 1)

इस तरह हम एक दिन ऐतिहासिक आंकड़ों को आगे लाते हैं और अब मैं इसे प्रत्येक दिन की वास्तविक संख्याओं से घटा सकता हूं।

0
Rational-IM 11 मई 2020, 16:30

अच्छे पुराने shift का उपयोग क्षैतिज अक्ष पर किया जा सकता है:

plot_data - plot_data.shift(-1, axis=1)

आप जो चाहते हैं वह होना चाहिए।

0
Serge Ballesta 31 मार्च 2020, 16:58