我有一個資料框,其中一個欄位包含多個由“ ”分隔的值。我想要的是將每個值拆分為一個新列。
import pandas as pd
df = {'ID': [3009, 129, 119, 120, 121],
'date': ['2016 2017', '2015', '2014 2019 2020', '2020', 'NULL']
}
df = pd.DataFrame(df)
看起來像這樣:
df
Out[25]:
ID date
0 3009 2016 2017
1 129 2015
2 119 2014 2019 2020
3 120 2020
4 121 NULL
我想用“ ”分隔符拆分“日期”列,并根據現有分隔符的數量創建列,然后創建一個顯示每條記錄的日期數的列。
ID date date2 date3 number of dates
0 3009 2016 2017 NULL 2
1 129 2015 NULL NULL 1
2 119 2014 2019 2020 3
3 120 2020 NULL NULL 1
4 121 NULL NULL NULL 0
我試過這段代碼:
df["date"] = df.date.apply(lambda x: pd.Series(str(x).split(" ")))
但它粉碎并顯示以下錯誤:
ValueError:傳遞的專案數錯誤 4,位置暗示 1
uj5u.com熱心網友回復:
用于str.split拆分
df[['date', 'date2', 'date3']] = df['date'].replace('NULL', np.nan).str.split(' ', expand=True)
并count計算
df['number of dates'] = df[['date', 'date2', 'date3']].count(axis=1)
print(df)
ID date date2 date3 number of dates
0 3009 2016 2017 None 2
1 129 2015 None None 1
2 119 2014 2019 2020 3
3 120 2020 None None 1
4 121 NaN NaN NaN 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/433560.html
