frac函数_Pandas数据处理常用函数整理

每次用python处理数据,老是记不清函数名 ,总得回去翻以前写的代码,实在太麻烦了,就在这里统一整理了一些pandas的常用操作,方便查阅。

【持续更新中】


读写csv/excel

从csv文件读取

frame = pd.read_csv("./1.csv")
'''
encoding=utf8/gbk
header=1

'''

从excel文件读取

member_frame=pd.read_excel("./附件二.xlsx", sheet_name="会员信息")

写入csv文件

# numpy array写入文件
np.savetxt("距离.csv", res_frame, delimiter=",",fmt="%f")
# pandas dataframe
road1_frame.to_csv("road1.csv",index=False,sep=',')

Dataframe相关操作

排序

frame.sort(["time", "id"])  # 可多字段排序

frame.sort(["time"],ascending=True) # 逆序

按条件筛选行

# 单列
frame.loc[frame["grade"] == "B"]

# 多列
frame.loc[(frame["grade"] == "B") | (frame["loan_amnt"] > 5000)]

# 限定显示字段
frame.loc[frame["grade"] == "B", ["member_id", "term" , "loan_amnt", "grade","sub_grade", "int_rate"]]

# 多种取值
frame.loc[frame["grade"].isin(['A','B'])]

# 包含子串
frame.loc[frame["name"].str.contains("张")]

dataframe遍历行

for index, task in task_frame.iterrows():
task_frame.loc[index, '任务密度']=task["num"]/1000

series带index遍历行

for i, v in tmp.iteritems():    # 或 items()
print(i, v)

统计某一栏取值分布

road1_frame['hour'].value_counts().sort_index() # 按索引排序
frame["终端号"].value_counts().sort_values(ascending=False) # 按值排序
06     11
07    110
08    208
09    186
10    106
11     69
12     86
13     78
14     81
15     61
17    117
18    168
19    153
20    147
21     93
22     49
23      8
Name: hour, dtype: int64

unique方法

frame["终端号"].unique()
array(["'00064298", "'00066298", "'00092298", ..., "'00156242", "'00010986", "'00119246"], dtype=object)

随机抽样

terminal_samples = frame.sample(frac=0.1, replace=False)    # 指定比例 无放回
terminal_samples = frame.sample(n=100, replace=True)    # 指定数量 有放回

新建空Dataframe

hour_distri_frame = pd.DataFrame(columns=["终端号"] + [x for x in range(24)])  # 设置列名
hour_distri_frame = hour_distri_frame.set_index(["终端号"], drop=True) # 设置索引字段
| | 0 | 1 | 2 | 3 | 4 | ... | 19 | 20 | 21 | 22 | 23 | | -----: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | 终端号 | | | | | | | | | | | |
0 rows × 24 columns

时间转换

  • datetime转timestamp
frame['time'] = frame['deal_date'].apply(lambda x:time.mktime(x.timetuple()))
  • 转字符串
frame['date'].apply(lambda x:x.strftime('%Y/%m/%d'))

插入一行

  • 字典形式
res = res.append([{'score':10.0}], ignore_index=True)
  • frame合并
insertRow = pd.DataFrame([[0.,0.,0.,0.,0.]],columns = ['date','spring','summer','autumne','winter'])
res = res.append(insertRow,ignore_index=True)

原文地址:

Pandas数据分析常用操作整理​blog.luzy.top
0dbc8fbcfc53e646be4e0b5a58045c4e.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值