pandas-賦值操作


1,pandas操作主要有對指定位置的賦值,如上一篇中的數據選擇一樣,根據loc,iloc,ix選擇指定位置,直接賦值

2,插入,insert方法,插入行和列

3,添加

4,刪除 drop方法

5,彈出 pop方法

In [1]:

import pandas as pd
import numpy as np

In [53]:

dates = np.arange(20190809,20190815)
df1 = pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=["A","B","C","D"])
df1

Out[53]:

A B C D
20190809 0 1 2 3
20190810 4 5 6 7
20190811 8 9 10 11
20190812 12 13 14 15
20190813 16 17 18 19
20190814 20 21 22 23

In [20]:

df1.iloc[2,2]

Out[20]:

10

In [44]:

df1.iloc[2,2] = 100
df1

Out[44]:

A B C D
20190809 0 1 2 3
20190810 4 5 6 7
20190811 8 9 100 11
20190812 12 13 14 15
20190813 16 17 18 19
20190814 20 21 22 23

In [40]:

df1.loc[20190810,"B"]=200
df1

Out[40]:

A B C D
20190809 0 1 2 3
20190810 4 200 6 7
20190811 8 9 10 11
20190812 12 13 14 15
20190813 16 17 18 19
20190814 20 21 22 23

In [54]:

df1[df1.A>10]=0
df1

Out[54]:

A B C D
20190809 0 1 2 3
20190810 4 5 6 7
20190811 8 9 10 11
20190812 0 0 0 0
20190813 0 0 0 0
20190814 0 0 0 0

In [55]:

df1.A[df1.A==0]=100
df1

Out[55]:

A B C D
20190809 100 1 2 3
20190810 4 5 6 7
20190811 8 9 10 11
20190812 100 0 0 0
20190813 100 0 0 0
20190814 100 0 0 0

In [56]:

#插入一列
df1["E"]=10
df1

Out[56]:

A B C D E
20190809 100 1 2 3 10
20190810 4 5 6 7 10
20190811 8 9 10 11 10
20190812 100 0 0 0 10
20190813 100 0 0 0 10
20190814 100 0 0 0 10

In [59]:

df1["F"]=pd.Series([1,2,3,4,5,6],index=dates)
df1

Out[59]:

A B C D E F
20190809 100 1 2 3 10 1
20190810 4 5 6 7 10 2
20190811 8 9 10 11 10 3
20190812 100 0 0 0 10 4
20190813 100 0 0 0 10 5
20190814 100 0 0 0 10 6

In [62]:

#添加一行
df1.loc[20190815,["A","B","C"]]=[5,6,8]
df1

Out[62]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN

In [65]:

s1=pd.Series([1,2,3,4,5,6],index=["A","B","C","D","E","F"])
s1.name="S1"
df2 = df1.append(s1)
df2

Out[65]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN
S1 1.0 2.0 3.0 4.0 5.0 6.0

In [67]:

#插入一列
df1.insert(1,"G",df2["E"])
df1

Out[67]:

A G B C D E F
20190809 100.0 10.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 10.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 10.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 10.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 10.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 10.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 NaN 6.0 8.0 NaN NaN NaN

In [68]:

g=df1.pop("G")
df1.insert(6,"G",g)
df1

Out[68]:

A B C D E F G
20190809 100.0 1.0 2.0 3.0 10.0 1.0 10.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0 10.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0 10.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0 10.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0 10.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0 10.0
20190815 5.0 6.0 8.0 NaN NaN NaN NaN

In [69]:

#刪除列
del df1["G"]
df1

Out[69]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN

In [70]:

df2 = df1.drop(["A","B"],axis=1)
df1

Out[70]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN

In [71]:

df2

Out[71]:

C D E F
20190809 2.0 3.0 10.0 1.0
20190810 6.0 7.0 10.0 2.0
20190811 10.0 11.0 10.0 3.0
20190812 0.0 0.0 10.0 4.0
20190813 0.0 0.0 10.0 5.0
20190814 0.0 0.0 10.0 6.0
20190815 8.0 NaN NaN NaN

In [73]:

#刪除行
df2=df1.drop([20190810,20190812],axis=0)
df1

Out[73]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190810 4.0 5.0 6.0 7.0 10.0 2.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190812 100.0 0.0 0.0 0.0 10.0 4.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN

In [74]:

df2

Out[74]:

A B C D E F
20190809 100.0 1.0 2.0 3.0 10.0 1.0
20190811 8.0 9.0 10.0 11.0 10.0 3.0
20190813 100.0 0.0 0.0 0.0 10.0 5.0
20190814 100.0 0.0 0.0 0.0 10.0 6.0
20190815 5.0 6.0 8.0 NaN NaN NaN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM