前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas技巧3

pandas技巧3

作者头像
皮大大
发布2021-03-01 14:45:44
8360
发布2021-03-01 14:45:44
举报

本文中总结了最近工作中用到的几个panads操作技巧

image.png
image.png

pandas显示列和行

显示全部的属性字段和行激励

代码语言:javascript
复制
# 显示所有列
# pd.set_option('display.max_columns', None)

#显示所有行
# pd.set_option('display.max_rows', None)

#设置value的显示长度为100,默认为50
# pd.set_option('max_colwidth',100)

解决中文乱码

当字段属性中存在中文的时候,读取数据的时候需要加上encoding参数

代码语言:javascript
复制
one = pd.read_csv(r"./one.csv",engine="python",encoding="utf-8")  # 也有可能是gb18030

时间和时间戳

时间转成时间戳
  1. 如果是本地时间的时间戳,在线工具:https://tool.lu/timestamp/
  2. 如果是某个指定时间的时间戳
  • 利用strptime()函数将时间转换成时间数组
  • 利用mktime()函数将时间数组转换成时间戳
代码语言:javascript
复制
import time
import datetime
timeArr = time.strptime("2020-06-01 00:00:00",'%Y-%m-%d %H:%M:%S')
time.mktime(timeArr)
image.png
image.png
时间戳转时间
  • localtime :将时间戳转成时间元组
  • strftime:将时间元组格式为特定形式
代码语言:javascript
复制
timestamp = 1591212042.8380945

#转换成localtime
time_local = time.localtime(timestamp)
#转换成新的时间格式(2016-05-05 20:28:54)
dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
dt
image.png
image.png
重新格式化时间
代码语言:javascript
复制
dt = "2020-06-03 20:28:54"

#转换成时间数组
timeArray = time.strptime(dt, "%Y-%m-%d %H:%M:%S")
#转换成新的时间格式(20160505-20:28:54)
dt_new = time.strftime("%Y%m%d-%H:%M:%S",timeArray)
image.png
image.png
去掉时间数据中的时分秒

将完整时间数据中的时分秒去掉

代码语言:javascript
复制
# 去掉时间中的时分秒,仅保留日期
df['basetime'] = pd.to_datetime(df['basetime']).dt.normalize()
按照指定格式获取当前时间

先获取到本地的时间戳;再将该时间戳转成指定的时间格式

代码语言:javascript
复制
time_now = int(time.time())  # 获取当前时间戳

# 转换成localtime
time_local = time.localtime(time_now)

# 转换成新的时间格式(2020-06-04 19:30:25)
# strftime指定格式
dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)
image.png
image.png

读取TXT中的json数据

方式1

先通过with语句读进来,再利用read_json进行读取

image.png
image.png
方式2

直接通过read_table读进来,再进行转化

代码语言:javascript
复制
data = pd.read_table("./user_data.txt")

df_user = pd.DataFrame()

for i in range(len(data)):
    df1 = pd.DataFrame(json.loads(data.iloc[i].values[0]), index=[i])
    df_user = pd.concat([df_user, df1])  # 合并的时候是将df1全部加到df_user的后面,相当于是更新df_user
image.png
image.png

去重后重新排序行索引

pandas中去重之后保留的索引仍是原数据的索引,有时候需要按照0,1,2,3,…进行重新排列

代码语言:javascript
复制
df.drop_duplicates("userid").reset_index(drop=True)  # drop参数是不保留原始的行索引信息
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-6-4,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pandas显示列和行
  • 解决中文乱码
  • 时间和时间戳
    • 时间转成时间戳
      • 时间戳转时间
        • 重新格式化时间
          • 去掉时间数据中的时分秒
            • 按照指定格式获取当前时间
            • 读取TXT中的json数据
              • 方式1
                • 方式2
                • 去重后重新排序行索引
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档