2017-02-20 13 views
24

में स्वरूपण पैरामीटर का उपयोग करके तिथि में कनवर्ट करें मुझे पता है कि कॉलम को डेट ऑब्जेक्ट में कनवर्ट करने के कई तरीके हैं, लेकिन जो मैं ढूंढ रहा हूं वह एक साथ ऐसा करने का एक तरीका है जबकि साथ ही अन्य कॉलम स्वरूपित करता है। मैं निम्न डेटा फ्रेम कहते हैं:pandas to_string

import pandas as pd 

url = "https://raw.github.com/pandas-dev/pandas/master/pandas/tests/data/tips.csv" 
df = pd.read_csv(url) 
df["date"] = list(range(42005, 42005+len(df))) 

क्या मैं प्राप्त करने के लिए कोशिश कर रहा हूँ कुछ स्वरूपण का उपयोग कर इन आंकड़ों को मुद्रित करने की क्षमता है, तो मैं निम्नलिखित की तरह कुछ कर सकता:

print(
    df 
    .head(10) 
    .to_string(
    formatters={"total_bill": "${:,.2f}".format, 
       "tip": "${:,.2f}".format 
    } 
) 
) 

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

क्या यह एक सरल तरीके से करना संभव है?

+1

क्या इसके लायक है के लिए, कारण मैं यह करने के देख रहा हूँ है, क्योंकि मैं एक साथ डाल रहा हूँ एक अजगर ट्यूटोरियल मेरे सहकर्मियों के लिए एसएएस उपयोगकर्ताओं के लिए, इसलिए मैं जितनी संभव हो उतनी तुलना करने की कोशिश कर रहा हूं। मुझे एहसास है कि अभ्यास में इसे करने की संभावना नहीं है, लेकिन यदि संभव हो तो मैं इसे ट्यूटोरियल में दिखाने में सक्षम होना चाहता हूं। – brittenb

+0

क्या आपने इसे देखा है? उदाहरण के लिए https://docs.python.org/3/library/datetime.html#strftime-strptime- व्यवहार '% B' महीने के बजाय टेक्स्ट को संख्या के रूप में आउटपुट करेगा। इसके अतिरिक्त आप यह स्पष्ट कर सकते हैं कि तारीख कहां से आ रही है? क्या वह डीबी में है या आप वर्तमान डेटाटाइम का उपयोग करने जा रहे हैं? –

+0

@XanderLuciano 'strftime' या 'strptime' का उपयोग करने में सक्षम होने के नाते आश्चर्यजनक होगा, लेकिन मुझे इसे' to_string' फ़ंक्शन में उपयोग करने में सक्षम होना चाहिए और मैं यह नहीं समझ सकता कि यह कैसे करें। यहां लक्ष्य उपयोगकर्ताओं को अपने सभी डेटा को उस चरण में प्रारूपित करने की अनुमति देना है। और तिथि डेटा डेटाबेस में ही होगा। यदि यह पहले से ही एक दिनांक प्रारूप में है, जैसे '01/01/2016" 'तो कोई प्रसंस्करण की आवश्यकता नहीं है। यदि यह पूर्णांक प्रारूप है, जैसे '01012016' तो मुझे पहले से ही पता है कि यह कैसे करें। युग के बाद से मुझे बस दिनों के लिए इसकी ज़रूरत है। – brittenb

उत्तर

18

बाहर कर देता है यह अविश्वसनीय रूप से आसान है एक बार आपको पता कैसे समारोह वास्तव में काम करता है ...

print(
    df 
    .head(10) 
    .to_string(
     formatters={"total_bill": "${:,.2f}".format, 
        "tip": "${:,.2f}".format, 
        "date": lambda x: "{:%m/%d/%Y}".format(pd.to_datetime(x, unit="D")) 
     } 
    ) 
) 

    total_bill tip  sex smoker day time size  date 
0  $16.99 $1.01 Female  No Sun Dinner  2 02/08/2017 
1  $10.34 $1.66 Male  No Sun Dinner  3 02/09/2017 
2  $21.01 $3.50 Male  No Sun Dinner  3 02/10/2017 
3  $23.68 $3.31 Male  No Sun Dinner  2 02/11/2017 
4  $24.59 $3.61 Female  No Sun Dinner  4 02/12/2017 
5  $25.29 $4.71 Male  No Sun Dinner  4 02/13/2017 
6  $8.77 $2.00 Male  No Sun Dinner  2 02/14/2017 
7  $26.88 $3.12 Male  No Sun Dinner  4 02/15/2017 
8  $15.04 $1.96 Male  No Sun Dinner  2 02/16/2017 
9  $14.78 $3.23 Male  No Sun Dinner  2 02/17/2017 
+1

@ तो क्या आपको अब बक्षीस मिलती है? o.0 बक्षीस कैसे काम करते हैं? – AsheKetchum

+1

@asheketchum जो उपहार दिया गया था वह मेरी प्रतिष्ठा थी, इसलिए मुझे लगता है कि मैं उस प्रतिनिधि को वापस प्राप्त करूंगा क्योंकि मैं अंततः अपने प्रश्न का उत्तर देने में सक्षम था। अगर किसी और ने अपने प्रतिनिधि को बक्षीस के रूप में पेश किया था, तो मुझे लगता है कि यह थोड़ा अलग होगा। – brittenb

+0

@heheketchum बाहर निकलता है मुझे अपनी प्रतिष्ठा वापस नहीं मिलती .... – brittenb

संबंधित मुद्दे