我有一個資料集,其中每個單元格包含的資料是字串和這樣的日期的混合
| AE |
|---|
| 2018-04-30 10:28, Bokning, Johan Skoglund, 1295 imkanal |
| 2019-08-12 15:27, CrossNej, 南, 南 |
| 2020-06-25 18:21, CrossNej, 南, 南 |
| :---- |
| 2018-09-13 12:25, Bokning, Simon Wallin, 2195 im och fr?nluften |
| 2019-07-26 16:26, CrossNej, 南, 南 |
| 2020-09-01 14:49, RetentionTelsvarare, 南, 南 |
| :---- |
| 2019-02-25 14:00, Bokning, Jan Gunnarsson, Imkanal 1495 kr |
| 2019-11-07 15:39, CrossNej, 南, 南 |
| 2020-01-14 17:52, CrossNej, 南, 南 |
| 2020-12-16 11:14, CrossRensat 12 m?n, 南, 南 |
我想要做的是按日期按降序排列每個單元格中的值(從最高到最低)。我已經嘗試了幾乎所有在線解決方案,但我一直無法這樣做。它要么只是一個日期,要么只是一個字串。我用換行符分割它
main_df["Log"] = outputdf["Log"].map(lambda x: '\n'.join(sorted(x.split('\n'))))
然后我通過將 accending 設定為 false 對其進行排序。但是資料并沒有因此而改變
main_df.explode('Log').sort_values(by='Log', ascending=False, inplace=True)
main_df = main_df.replace(np.nan,0)
然后我嘗試了這個
main_df.loc[np.argsort(main_df.Log.str.split('-').str[-1].astype(int).values)]
和
main_df = main_df.reindex(main_df['Log'].str.extract('(\d )', expand=False).astype(int).sort_values(ascending=False).index).reset_index(drop=True)
但我明白了
ValueError:以 10 為底的 int() 的無效文字
和這個
python int 太大而無法轉換為 c long
也試過
main_df['Log'] = pd.to_datetime(main_df['Log'])
main_df = main_df.sort_values(by=['Log'], ascending=False)
但似乎沒有任何效果。請幫我解決這個問題。三個塊中的每一個都代表我列中的一個單元格。我想在一個單元格而不是整個表格中組織資料。
uj5u.com熱心網友回復:
我的建議是首先將您的 AE 列轉換為陣列,我相信該陣列會是這樣的。
array = ['2018-04-30 10:28,Bokning,Johan Skoglund,1295 imkanal',
'2019-08-12 15:27, CrossNej, nan, nan',
'2020-06-25 18:21, CrossNej, nan, nan']
轉換為陣列后,就可以運行sorted函式。您的排序功能將如下所示。
sorted(array, reverse=True, key=lambda x: datetime.datetime.strptime(x.split(',')[0], '%Y-%m-%d %H:%M'))
reverse = True將用于降序。
uj5u.com熱心網友回復:
你對問題的描述和預期的結果不是很清楚,我只能自己猜測,試試下面的代碼:
def handle(s: str):
f = pd.Series(s.split('\n')).str.split(r',', n=1, expand=True)
f['tmp'] = pd.to_datetime(f[0])
f = f.sort_values('tmp', ascending=False)
res = f[0].str.cat(f[1], sep=', ').str.cat(sep='\n')
return res
res = main_df.log.apply(handle)
print(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/441068.html
標籤:Python python-3.x 熊猫 数据框 排序
下一篇:如何確定哪個點離另一個點最近?
