Pandas设置值

我们可以根据自己的需求, 用 pandas 进行更改数据里面的值, 或者加空行,或者有数值的列。
(1)创建DataFrame

import pandas as pd
import numpy as np

  # index行索引,columns列索引
 dates = pd.date_range('20180101', periods=6)
 df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=  ['A', 'B', 'C', 'D'])
 print(df)

‘’’
A B C D
2018-01-01 0 1 2 3
2018-01-02 4 5 6 7
2018-01-03 8 9 10 11
2018-01-04 12 13 14 15
2018-01-05 16 17 18 19
2018-01-06 20 21 22 23
‘’’
(2)根据标签(loc)或者位置(iloc)设置值

df.iloc[2,2] = 66
df.loc[‘20180101’, ‘D’] = 44

‘’’
A B C D
2018-01-01 0 44 2 3
2018-01-02 4 5 6 7
2018-01-03 8 9 66 11
2018-01-04 12 13 14 15
2018-01-05 16 17 18 19
2018-01-06 20 21 22 23
‘’’
(3)根据条件设置值
#第一种情形,df.A>4会把A中大于4的位置置0,然后取df,把A中大于4的位置的几行元素全部置0

df[df.A>4]=0
print(df)

‘’’
A B C D
2018-01-01 0 44 2 3
2018-01-02 4 5 6 7
2018-01-03 8 0 66 11
2018-01-04 0 0 0 0
2018-01-05 0 0 0 0
2018-01-06 0 0 0 0
‘’’
#如果只需A这一列元素置0

df.A[df.A>4]=0
print(df)

‘’’
A B C D
2018-01-01 0 44 2 3
2018-01-02 4 5 6 7
2018-01-03 8 9 66 11
2018-01-04 0 13 14 15
2018-01-05 0 17 18 19
2018-01-06 0 21 22 23
‘’’
#如果要更改B大于4的元素置0

df.B[df.A>4] = 0
print(df)

‘’’
A B C D
2018-01-01 0 44 2 3
2018-01-02 4 5 6 7
2018-01-03 8 0 66 11
2018-01-04 12 0 14 15
2018-01-05 16 0 18 19
2018-01-06 20 0 22 23

‘’’
(4)按行或列设置

#如果对整列做批处理, 加上一列 ‘E’, 并将 E 列全改为空 (NaN)

df[‘F’] = np.nan
print(df)

‘’’
A B C D E
2018-01-01 0 44 2 3 NaN
2018-01-02 4 5 6 7 NaN
2018-01-03 8 0 66 11 NaN
2018-01-04 12 0 14 15 NaN
2018-01-05 16 0 18 19 NaN
2018-01-06 20 0 22 23 NaN
‘’’
5、添加数据

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

df[‘F’] = pd.Series([1,2,3,4,5,6],
index=pd.date_range(‘20180101’,periods=6))

print(df)

‘’’
A B C D E F
2018-01-01 0 44 2 3 NaN 1
2018-01-02 4 5 6 7 NaN 2
2018-01-03 8 0 66 11 NaN 3
2018-01-04 12 0 14 15 NaN 4
2018-01-05 16 0 18 19 NaN 5
2018-01-06 20 0 22 23 NaN 6
‘’’

你可能感兴趣的:(Pandas设置值)