pandas 面试题挑战五
------------恢复内容开始------------
计算两个Series之间的均方误差
现有两个Series如下:
truth = pd.Series(range(10))
pred = pd.Series(range(10)) + np.random.random(10)
计算两个Series之间的均方误差
解决办法:
np.mean((truth-pred)**2)
输出
0.4910588102724459
把Series中字符串的打头字母转化为大写
现有Series如下:
ser = pd.Series(['how', 'to', 'kick', 'ass?'])
把打头字母转化为大写
解决办法如下:
ser.map(lambda x: x.title())
输出
0 How 1 To 2 Kick 3 Ass? dtype: object
计算每个Series中字符串的长度
现有Series如下:
ser = pd.Series(['how', 'to', 'kick', 'ass?'])
计算每个字符串的长度
解决方法如下:
ser.map(lambda x: len(x))
输出
0 3
1 2
2 4
3 4
dtype: int64
计算Series中每个元素与前面元素的差值
现有Series如下
ser = pd.Series([1, 3, 6, 10, 15, 21, 27, 35])
计算每个元素与前面元素的差值
解决方法如下:
print(ser.diff().tolist())
输出
[nan, 2.0, 3.0, 4.0, 5.0, 6.0, 6.0, 8.0]
如何把日期的字符串转换为时间序列
现有Series如下:
ser = pd.Series(['01 Jan 2010', '02-02-2011', '20120303', '2013/04/04', '2014-05-05', '2015-06-06T12:20'])
进行转换如下:
pd.to_datetime(ser)
输出:
0 2010-01-01 00:00:00
1 2011-02-02 00:00:00
2 2012-03-03 00:00:00
3 2013-04-04 00:00:00
4 2014-05-05 00:00:00
5 2015-06-06 12:20:00
dtype: datetime64[ns]