#切片
#对行切片
df[1:3] #左闭右开
d['AA':'BB'] #左闭右闭
df.iloc[1:3]
df.loc['AA','BB']
#对列切片
df.iloc[:,1:4]
df.loc[:,'python':'java']
#对行和列
df.iloc[1:3,1:4]
df.loc['AA':'BB','pyhton':'spark']
df.loc['AA','python':'spark'] #取一行数据的值
df.loc[['AA','CC'],'python':'spark'] #取不连续行数据的值
总结:
取一行或一列:索引
取连续的多行或多列:切片
取不连续的多行或多列:中括号
#DataFrame运算
df1 = pd.DataFrame(
data=np.random.randint(10,100,size=(4,6)),
index=['AA','BB','CC','DD'],
columns=['python','java','C','C++','spark','hive']
)
df2 = pd.DataFrame(
data=np.random.randint(10,100,size=(3,3)),
index=['AA','BB','CC'],
columns=['python','java','C']
)
display(df1,df2)
df1 + 100
df1 * 100
df1 + df2
df3 = pd.DataFrame(
data=np.random.randint(10,100,size=(4,6)),
index=['AA','BB','CC','DD'],
columns=['python','java','C','C++']
)
df1 + df3 #没有广播机制,空缺值为Nan
df1.add(df3,fill_value=0) #对空缺值进行填充
df1.divide(df3,fill_value=2) #除法运算对空缺值填充
s = pd.Series([100,10,1],index=df1.columns)
df1 + s
df1.add(s)
df1.add(s,axis='columns') #列匹配相加
df1.add(s,axis=1) #同上
s = pd.Series([100,10,1],index=df1.index)
df1.add(s,axis=0) #Series与DataFrame行相同时只能用add不能用+
df2.add(s,axis='index') #同上对应行相加