Pandas DataFrame设置值

网友投稿 219 2022-09-25

Pandas DataFrame设置值

创建数据

我们可以根据自己的需求, 用 pandas 进行更改数据里面的值, 或者加上一些空的,或者有数值的列.

首先建立了一个 6X4 的矩阵数据。

dates = pd.date_range('20130101', periods=6)df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])""" A B C D2013-01-01 0 1 2 32013-01-02 4 5 6 72013-01-03 8 9 10 112013-01-04 12 13 14 152013-01-05 16 17 18 192013-01-06 20 21 22 23"""

根据位置设置 loc 和 iloc

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

df.iloc[2,2] = 1111df.loc['20130101','B'] = 2222""" A B C D2013-01-01 0 2222 2 32013-01-02 4 5 6 72013-01-03 8 9 1111 112013-01-04 12 13 14 152013-01-05 16 17 18 192013-01-06 20 21 22 23"""

根据条件设置

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

df.B[df.A>4] = 0""" A B C D2013-01-01 0 2222 2 32013-01-02 4 5 6 72013-01-03 8 0 1111 112013-01-04 12 0 14 152013-01-05 16 0 18 192013-01-06 20 0 22 23 """

按行或列设置

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

df['F'] = np.nan""" A B C D F2013-01-01 0 2222 2 3 NaN2013-01-02 4 5 6 7 NaN2013-01-03 8 0 1111 11 NaN2013-01-04 12 0 14 15 NaN2013-01-05 16 0 18 19 NaN2013-01-06 20 0 22 23 NaN"""

添加数据

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

df['E'] = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130101',periods=6)) """ A B C D F E2013-01-01 0 2222 2 3 NaN 12013-01-02 4 5 6 7 NaN 22013-01-03 8 0 1111 11 NaN 32013-01-04 12 0 14 15 NaN 42013-01-05 16 0 18 19 NaN 52013-01-06 20 0 22 23 NaN 6"""

这样我们大概学会了如何对​​DataFrame​​中在自己想要的地方赋值或者增加数据。 下次课会将pandas如何处理丢失数据的过程。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:matplotlib Annotation 标注
下一篇:公关界的007:百丽国际与聚划算的追光之旅,走出消费者沟通“新”路子!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~