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

pandas操作

作者头像
机器学习和大数据挖掘
发布2019-07-01 18:22:53
4790
发布2019-07-01 18:22:53
举报
文章被收录于专栏:数据挖掘数据挖掘

python中使用了pandas的一些操作,特此记录下来:

生成DataFrame

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_2'],
    'label': ["a,b", 'e,f,g'],
})
print(data)

得到结果为:

代码语言:javascript
复制
   label v_id
0    a,b  v_1
1  e,f,g  v_2

按照逗号分隔并拼接

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_2'],
    'label': ["a,b", 'e,f,g'],
})
df = data.drop('label', axis=1).join(data['label'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename('label'))
print(df)

得到结果为:

代码语言:javascript
复制
  v_id label
0  v_1     a
0  v_1     b
1  v_2     e
1  v_2     f
1  v_2     g

筛选符合条件的行

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
})
target_label = data.loc[data['label'].isin(["e", "f"])]
print(target_label)

得到结果为:

代码语言:javascript
复制
  v_id label
1  v_2     e
1  v_2     f

筛选不符合条件的行

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
    'num': [1, 2, 3, 4, 5],
})

other_label1 = data[~data['label'].isin(["f", "g"])]
print(other_label1)

other_label2 = data.query("num<=3 & label!='b'")
print(other_label2)

得到结果为:

代码语言:javascript
复制
  v_id label
0  v_1     a
0  v_1     b
1  v_2     e

  label  num v_id
0     a    1  v_1
2     e    3  v_2

替换某一列的值

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
})

df = data.copy()
df.loc[df["label"] != "", 'label'] = "1"
print(df)

得到结果为:

代码语言:javascript
复制
  v_id label
0  v_1     1
0  v_1     1
1  v_2     1
1  v_2     1
1  v_2     1

取某一列转换成list

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
})
print(data["label"].values.tolist())

得到结果为:

代码语言:javascript
复制
['a', 'b', 'e', 'f', 'g']

按照某一列去重

代码语言:javascript
复制
import pandas as pd

data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
})
print(data.drop_duplicates(subset=['v_id']))

得到结果为:

代码语言:javascript
复制
  v_id label
0  v_1     a
1  v_2     e

复制dataframe并拼接

代码语言:javascript
复制
data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
})

data_copy = data.copy()
times = 2
for i in range(times):
    data_copy = pd.concat([data_copy,data])
print(data_copy)

得到结果为:

代码语言:javascript
复制
  v_id label
0  v_1     a
0  v_1     b
1  v_2     e
1  v_2     f
1  v_2     g
0  v_1     a
0  v_1     b
1  v_2     e
1  v_2     f
1  v_2     g
0  v_1     a
0  v_1     b
1  v_2     e
1  v_2     f
1  v_2     g

更改某一列类型

代码语言:javascript
复制
data = pd.DataFrame({
    'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
    'label': ["a", 'b', "e", "f", "g"],
    'num': [1.0, 2.0, 3.0, 4.0, 5.0],
})
data["num"] = data[["num"]].astype(int)
print(data)

得到结果为:

代码语言:javascript
复制
  label  num v_id
0     a    1  v_1
1     b    2  v_1
2     e    3  v_2
3     f    4  v_2
4     g    5  v_2
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生成DataFrame
  • 按照逗号分隔并拼接
  • 筛选符合条件的行
  • 筛选不符合条件的行
  • 替换某一列的值
  • 取某一列转换成list
  • 按照某一列去重
  • 复制dataframe并拼接
  • 更改某一列类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档