Pandas——如何更改DataFrame中的值

1.构造DataFrame

import pandas as pd
import numpy as np

dates = pd.date_range('20200315', periods = 5)
df = pd.DataFrame(np.arange(20).reshape((5,4)), index = dates, columns = ['A','B','C','D'])
print(df)

#输出
             A   B   C   D
2020-03-15   0   1   2   3
2020-03-16   4   5   6   7
2020-03-17   8   9  10  11
2020-03-18  12  13  14  15
2020-03-19  16  17  18  19

2.运用loc、iloc更改值

我们可以利用索引或者标签确定需要修改值的位置。

df.loc['20200318','C'] = 20200318     #标签索引
df.iloc[2,3] = 20200318    #数字索引
print(df)

#输出
             A   B         C         D
2020-03-15   0   1         2         3
2020-03-16   4   5         6         7
2020-03-17   8   9        10  20200318
2020-03-18  12  13  20200318        15
2020-03-19  16  17        18        19

3.运用条件判断更改值

如果现在的判断条件是这样, 我们想要更改B中的数, 而更改的位置是取决于 C的. 对于C大于6的位置. 更改B在相应位置上的数为0.

df.B[df.C>6] = 0    #C字段中大于6的那些行在B字段中全都设为0
print(df)

#输出
             A  B         C         D
2020-03-15   0  1         2         3
2020-03-16   4  5         6         7
2020-03-17   8  0        10  20200318
2020-03-18  12  0  20200318        15
2020-03-19  16  0        18        19

4.在DataFrame中添加一列

如果对整列做批处理, 加上一列 ‘E’, 并将 E 列全改为 NaN, 如下:

df['E'] = np.nan
print(df)

#输出
             A   B   C   D   E
2020-03-15   0   1   2   3 NaN
2020-03-16   4   5   6   7 NaN
2020-03-17   8   9  10  11 NaN
2020-03-18  12  13  14  15 NaN
2020-03-19  16  17  18  19 NaN

用上面的方法也可以加上 Series 序列(但是长度必须对齐)。

df['F'] = pd.Series([11,22,33,44,55],index = pd.date_range('20200315',periods = 5))
print(df)

#输出
             A   B   C   D   E   F
2020-03-15   0   1   2   3 NaN  11
2020-03-16   4   5   6   7 NaN  22
2020-03-17   8   9  10  11 NaN  33
2020-03-18  12  13  14  15 NaN  44
2020-03-19  16  17  18  19 NaN  55
  • 32
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PandasDataFrame是一种二维数据结构,可以看作是一张表格,其的数据以行和列的形式进行组织。DataFrame可以由多种类型的数据创建,包括列表、字典、数组等。与Numpy的ndarray相比,DataFrame提供了更多的数据操作和分析功能。 例如,可以使用列表或字典创建DataFrame,如下所示: df1 = pd.DataFrame(data=[[1, 2, 3], [11, 12, 13]], index=['r_1', 'r_2'], columns=['A', 'B', 'C']) df2 = pd.DataFrame(data=[[1], [11]], index=['r_1', 'r_2'], columns=['A']) df3 = pd.DataFrame(data=np.arange(12).reshape(3, 4), index=list("abc"), columns=list("ABCD"))<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PandasDataFrame详解](https://blog.csdn.net/ytp552200ytp/article/details/115550564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Pandas基础——DataFrame](https://blog.csdn.net/qq_48003414/article/details/116976339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值