@
一、数据查看、转置
# 数据查看、转置
df = pd.DataFrame(np.random.rand(16).reshape(8,2)*100,
columns = ['a','b'])
print(df.head(2))# .head()查看头部数据
print(df.tail())# .tail()查看尾部数据
# 不输入参数,默认查看5条
# .T 转置
print(df.T)
二、添加与修改
df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
columns = ['a','b','c','d'])
# 新增列/行并赋值
df['e'] = 10
df.loc[4] = 20 #iloc不能用于增加
# 索引后直接修改值
df['e'] = 20
df[['a','c']] = 100
三、删除 del / drop()
df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
columns = ['a','b','c','d'])
# del语句 - 删除列
del df['a']
# drop()删除行,默认:inplace=False → 删除后生成新的数据,不改变原数据
print(df.drop(0)) # !!!这里的数字0是index的名字而不是序号
print(df.drop([1,2]))
# drop()删除列,需要加上axis = 1,默认:inplace=False → 删除后生成新的数据,不改变原数据
print(df.drop(['d'], axis = 1))
print(df)
四、基本运算,自动对齐
DataFrame对象之间进行运算时,数据自动按照列和索引(行标签)对齐。只要有一个DataFrame对象对应位置为NaN,怎运算完的对应位置也为NaN
df1 = pd.DataFrame(np.random.randn(10, 4), columns=['A', 'B', 'C', 'D'])
df2 = pd.DataFrame(np.random.randn(7, 3), columns=['A', 'B', 'C'])
print(df1 + df2)
和Excel的排序规则是一致的
5.1 按值(列)排序 .sort_values
# 同样适用于Series
df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
columns = ['a','b','c','d'])
print(df1)
# 单列排序
# ascending参数:设置升序降序,默认升序
print(df1.sort_values(['a'], ascending = True)) # 升序
print(df1.sort_values(['a'], ascending = False)) # 降序
print('------')
# 多列排序,按列顺序排序,先排前面的再排后面的
df2 = pd.DataFrame({'a':[1,1,1,1,2,2,2,2],
'b':list(range(8)),
'c':list(range(8,0,-1))})
print(df2)
print(df2.sort_values(['a','c']))
# 注意默认inplace=False
5.2 按索引(行)排序 .sort_index
df1 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
index = [5,4,3,2],
columns = ['a','b','c','d'])
df2 = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
index = ['h','s','x','g'],
columns = ['a','b','c','d'])
print(df1)
print(df1.sort_index())
print(df2)
print(df2.sort_index())
码字不易,如果对您有帮助,就打赏一下吧O(∩_∩)O