我读到apply函数将整个系列作为输入,并将自定义函数应用于该系列。但是我将以下函数应用于数据帧中的col,它的工作方式就像是明智地传递数据元素一样(因为它正在拆分该列中的每个值,并且我无法理解如何在整个列上完成该操作)
def get_date(value):
value_str = str(value)
d = value_str.split("T")
d1 = pd.to_datetime(d[0])
return d1
在这种情况下,如果有人可以清楚地区分python中的apply和applymap,那就太好了。
答案 0 :(得分:0)
def get_date(value):
value_str = str(value)
d = value_str.split(" ")
d1 = pd.to_datetime(d[0])
return pd.Series([d1], index=['date'])
df = pd.DataFrame({'full_date': pd.date_range('2018-6-20 10:00:00.123', periods=10, freq='5H')})
df[['date']] = df['full_date'].apply(get_date)
df(输入):
full_date
0 2018-06-20 10:00:00.123
1 2018-06-20 15:00:00.123
2 2018-06-20 20:00:00.123
3 2018-06-21 01:00:00.123
4 2018-06-21 06:00:00.123
5 2018-06-21 11:00:00.123
6 2018-06-21 16:00:00.123
7 2018-06-21 21:00:00.123
8 2018-06-22 02:00:00.123
9 2018-06-22 07:00:00.123
df(Ouput):
full_date date
0 2018-06-20 10:00:00.123 2018-06-20
1 2018-06-20 15:00:00.123 2018-06-20
2 2018-06-20 20:00:00.123 2018-06-20
3 2018-06-21 01:00:00.123 2018-06-21
4 2018-06-21 06:00:00.123 2018-06-21
5 2018-06-21 11:00:00.123 2018-06-21
6 2018-06-21 16:00:00.123 2018-06-21
7 2018-06-21 21:00:00.123 2018-06-21
8 2018-06-22 02:00:00.123 2018-06-22
9 2018-06-22 07:00:00.123 2018-06-22