डेटा निकालने और उन्हें तरह by दिनांक

0

सवाल

मैं कोशिश कर रहा हूँ बाहर आंकड़ा करने के लिए एक व्यायाम पर स्ट्रिंग हेरफेर और छँटाई । व्यायाम करने के लिए पूछता है निकालने के शब्दों है कि समय के संदर्भ में (उदाहरण के लिए, घंटे, दिन) से पाठ, प्रकार, और पंक्तियों के आधार पर समय में निकाली गई एक ascendent आदेश. डेटा का एक उदाहरण है:

Customer     Text
1            12 hours ago — the customer applied for a discount
2            6 hours ago — the customer contacted the customer service
3            1 day ago — the customer reported an issue
4            1 day ago — no answer
4            2 days ago — Open issue
5            

इस कार्य में मैं पहचान कर सकते हैं कई कठिनाइयों:

- time reference can be expressed as hours/days/weeks
- there are null values or no reference to time
- get a time format suitable and more general, e.g., based on the current datetime

पहला बिंदु पर, मैं ने कहा कि आम तौर पर तारीखों से पहले कर रहे हैं — है, चाहे मौजूद है, तो यह आसान हो सकता है, उन्हें निकालने के लिए. दूसरे बिंदु पर, एक अगर बयान से बचने के सकता है त्रुटि संदेश के कारण अधूरा/लापता क्षेत्रों. मैं नहीं जानता कि कैसे करने के लिए जवाब करने के लिए तीसरी बात है, हालांकि.

मेरी उम्मीद परिणाम के लिए किया जाएगा:

Customer     Text                                                        Sort by
1            12 hours ago — the customer applied for a discount             1
2            6 hours ago — the customer contacted the customer service      2
3            1 day ago — the customer reported an issue                     2
4            1 day ago — no answer                                          2
4            2 days ago — Open issue                                        3
5            
data-manipulation pandas python
2021-11-24 01:46:37
1

सबसे अच्छा जवाब

1

दिया DataFrame नमूना है, मुझे लगता है कि इस अभ्यास के लिए पहले दो शब्दों का पाठ कर रहे हैं क्या आप के बाद कर रहे हैं. मैं कर रहा हूँ पर स्पष्ट नहीं है कि कैसे छँटाई काम करता है, लेकिन तीसरे के लिए बिंदु, एक अधिक उपयुक्त समय होगा current time - timedelta से पाठ स्तंभ

आप लागू कर सकते हैं एक अगर किसी और लैम्ब्डा समारोह के लिए पहले दो शब्दों के प्रत्येक पंक्ति के Text और यह परिवर्तित करने के लिए एक पांडा Timedelta वस्तु - उदाहरण के लिए pd.Timedelta("1 day") वापस आ जाएगी एक Timedelta वस्तु.

तब आप घटाना कर सकते हैं के Timedelta स्तंभ से वर्तमान समय प्राप्त कर सकते हैं जो के साथ pd.Timestamp.now():

df["Timedelta"] = df.Text.apply(lambda x: pd.Timedelta(' '.join(x.split(" ")[:2])) if pd.notnull(x) else x)
df["Time"] = pd.Timestamp.now() - df["Timedelta"]

आउटपुट:

>>> df
   Customer                                               Text       Timedelta                       Time
0         1  12 hours ago — the customer applied for a disc... 0 days 12:00:00 2021-11-23 09:22:40.691768
1         2  6 hours ago — the customer contacted the custo... 0 days 06:00:00 2021-11-23 15:22:40.691768
2         3         1 day ago — the customer reported an issue 1 days 00:00:00 2021-11-22 21:22:40.691768
3         4                              1 day ago — no answer 1 days 00:00:00 2021-11-22 21:22:40.691768
4         4                            2 days ago — Open issue 2 days 00:00:00 2021-11-21 21:22:40.691768
5         5                                                NaN             NaT                        NaT
2021-11-24 18:34:53

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में