楼主: zwy_0309
6444 5

Python中Dataframe数据的修改(笔记) [推广有奖]

  • 1关注
  • 3粉丝

硕士生

36%

还不是VIP/贵宾

-

威望
0
论坛币
342 个
通用积分
99.1487
学术水平
11 点
热心指数
9 点
信用等级
7 点
经验
4173 点
帖子
69
精华
0
在线时间
148 小时
注册时间
2019-6-4
最后登录
2024-3-29

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

上一节学习了Dataframe数据的显示,本节学习Dataframe数据的更新、插入和删除。仍以这个数据表为例:

       dataframe用例

一、更新(选择相应的数据à赋值à更新原表数据)

1、frame['height'] = frame['height'] +0.01   ----给每个人的身高加0.01

2、 frame[1:2] ['name']= '李四方'   ----将第二行的姓名改为‘李四方’;这一方法会有警告,因为该数据进行了2次选择,第一次先选择了行,第二次选择了列,有可能会不成功,最好用下面的方法;frame.loc[1,'name'] = '李四方'   ---一步到位选择数据


3、带条件的修改:frame.loc[frame['height']>1.80,'age'] = frame.loc[frame['height']>1.80,'age']+1---将所有身高大于1.80的记录的年龄都增加一岁

二、插入

1、插入行:先将一行数据赋给frame1,再将frame1追加到原frame后


data1 = { 'ID':['008'],
         
'name':['方圆'],
         
'gender':[False],
         
'age':[21],
         
'heitht':[1.69]
        }
frame1=pd.DataFrame(data1)
frame.append(frame1)     ----
注意这一方法会将frame1的索引号0一并追加过来


frame.append(frame1,ignore_index=True)  ---这一方法会忽略原来的索引,其索引会自动增加


2、插入列:


1)在最后插入列:frame['class']=['c1','c2','a1','b2','c1','c2','c2']


2)在中间插入列:frame.insert(0,'class',['c1','c2','a1','b2','c1','c2','c2'])---表示在第1列的前面插入class列  


3)带条件的选择与插入frame= frame.append(frame.loc[frame['age']>17])   ---将frame表中所有年龄大于17的记录找到,并再次插入到frame列表的最后

三、删除

用到一个知识点:frame内置两个属性,frame.index和frame.columns,这两个属性会返回frame的索引和列名的信息。

1、 行删除

方法1:frame= frame.drop(1)   ---删除索引为1的那一行frame= frame.drop([1,2])等价于frame= frame.drop(index=[1,2])--–删除多行(索引1、2两行)


方法2:frame= frame.drop(1,axis=0)  --- axis=0指定要删除的是行

方法3:frame= frame.drop(index=(frame.loc[(frame['gender']==True)].index))---删除符合条件的记录(先找到符合条件的frame: frame.loc[(frame['gender']==True)],然后再取index

2、 列删除

方法1:frame= frame.drop(columns = 'name')

方法2:frame= frame.drop('name',axis=1)   ---axis=1指定要删除的是列




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Dataframe python Frame Data Fram

已有 3 人评分经验 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
cheetahfly + 100 精彩帖子
yunnandlg + 20 精彩帖子

总评分: 经验 + 120  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
zwy_0309 在职认证  发表于 2020-10-23 14:54:39 |只看作者 |坛友微信交流群
不知为什么,写好的文档,提交后有一些回车就不见了,使得整篇文章都挤到了一个段落中,多次编辑仍不能完全避免,所以有的地方增加了两个回车,看上去仍不算好看,但层次清晰了。

使用道具

藤椅
zwy_0309 在职认证  发表于 2021-8-17 22:53:03 |只看作者 |坛友微信交流群
将两个dataframe表连起来,使用concat
表3 = pd.concat([表1 , 表2], ignore_index=True)

使用道具

板凳
1226407869 学生认证  发表于 2021-8-20 15:51:17 |只看作者 |坛友微信交流群
<!-- markdown css tag --><div class="pinggu_markdown">
<div class="pinggu_markdown__html"><h2 id="如果你用markdown发帖的话,将会有不一样的体验哟。看一下下面的代码段吧。">如果你用<code>markdown</code>发帖的话,将会有不一样的体验哟。看一下下面的代码段吧。</h2>
<pre class=" language-python"><code class="prism  language-python"><span class="token keyword">def</span> <span class="token function">get_abs</span><span class="token punctuation">(</span>x<span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">if</span> <span class="token operator">not</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">,</span> <span class="token builtin">float</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
        <span class="token keyword">raise</span> TypeError<span class="token punctuation">(</span><span class="token string">'bad operand type'</span><span class="token punctuation">)</span>
    <span class="token keyword">if</span> x <span class="token operator">&gt;=</span> <span class="token number">&#48;</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> x
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> <span class="token operator">-</span>x
</code></pre>
</div>
</div>

使用道具

报纸
1226407869 学生认证  发表于 2021-8-20 15:51:28 |只看作者 |坛友微信交流群
<!-- markdown css tag --><div class="pinggu_markdown">
<div class="pinggu_markdown__html"><h2 id="如果你用markdown发帖的话,将会有不一样的体验哟。看一下下面的代码段吧。">如果你用<code>markdown</code>发帖的话,将会有不一样的体验哟。看一下下面的代码段吧。</h2>
<pre class=" language-python"><code class="prism  language-python"><span class="token keyword">def</span> <span class="token function">get_abs</span><span class="token punctuation">(</span>x<span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">if</span> <span class="token operator">not</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">,</span> <span class="token builtin">float</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
        <span class="token keyword">raise</span> TypeError<span class="token punctuation">(</span><span class="token string">'bad operand type'</span><span class="token punctuation">)</span>
    <span class="token keyword">if</span> x <span class="token operator">&gt;=</span> <span class="token number">&#48;</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> x
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> <span class="token operator">-</span>x
</code></pre>
</div>
</div>

使用道具

地板
zwy_0309 在职认证  发表于 2022-4-14 16:12:19 |只看作者 |坛友微信交流群
前2行转数字类型后,相减,覆盖第一行

   data = {'name':['张三','李四','王五','赵六','田七','陈八','刘九'],
            'age': [20, 18, 19, 18, 13, 17, 19],
            'height': [1.88, 1.68, 1.78, 1.59, 1.70, 1.60, 1.71]
            }
    frame = pd.DataFrame(data)
    dd = frame.iloc[1:4, 1:3].astype('float')
    dd.loc[1] =dd.loc[1]-dd.loc[2]
    print(dd)

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 09:15