Python 知识点小结(一)

421 阅读2分钟

DataFrame.fillna()

通过 Pandas 读取 f['作案交通工具'] 数据得到含有NaN 列数据,利用 fillna() 函数,可以将 NaN 数据转换成自定义的字符串。

实战:

import pandas as pd
f = pd.read_csv("jingqing.csv")
print(f['作案交通工具'].fillna('missing'))

运行结果:

0       missing
1       missing
2       missing
3       missing
4       missing
...

tolist()

DataFrame 中的某一列转换成 List ,可以用 tolist() 这一函数, DataFrame['列名'].tolist()

实战:

d = f['受理时间'].tolist()
print(d)

运行结果:

['2015/12/14/ 15:29', '2015/12/14/ 01:15', '2015/12/11/ 15:06'...]

计算字符串时间差

利用 parse() 函数来计算两个时间的差。

实战:

from dateutil.parser import parse

a = parse('2015/12/15/ 15:29')
b = parse('2015/12/14/ 11:15')
# 计算秒差
secondsDiff = (a-b).seconds
# 计算天差
daysDiff = (a-b).days
# 计算分钟差
minutesDiff = daysDiff*1440+round(secondsDiff/60,1)
# 计算小时差
print(minutesDiff/60)

运行结果:

28.233333333333334

此种方法有点繁琐,这是因为使用 seconds 方式计算时间差时只能算出在一天内的时间差忽略了天数,所以要得到正确的时间差,需要先计算出 days 的时间差,再算出 seconds 的时间差,两者相加再转换成 minutes 才是正确的时间差。 最简单的方式是使用 total_seconds 的方式计算时间差,再转换成 hours 的时间差。如下:

hoursDiff=(a-b).total_seconds()/3600

找出 DataFrame 中的某列中的重复数据

某一列中可能有重复的数据,用 duplicated() 函数可以找到。

实战:

r = []
d = f.loc[f.duplicated('联系电话') == True]
for i in d['联系电话']:
    if i != "" and  i not in r and i:
        r.append(i)
print(r)

运行结果:

[1330571XXXX, 1325102XXXX, 1375088XXXX,...]

希望看客老爷打赏些喝茶钱

支付宝

支付宝

微信

微信