dateframe行列插入和删除操作

ar = np.array(list("ABCDEFG"))   # array只是Convert,默认会copy源值。asarray也是Convert,如果源值是array则不copy.
print(ar)
ar = np.full((2,4), 3, np.int32) # 创建一个指定初始值的数组
print(ar)
zero_ar = np.zeros(10, np.int32) # 创建一个初始值为0的数组
print(zero_ar)

df = pd.DataFrame(np.arange(36).reshape(6,6), dtype=np.int32, columns=list("ABCDEF"))
to_del_column_index = [2,3] # 只能是列序号(如:2,3)不能是列标签(如: 'C','D')
print(df.columns) # Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
df.drop(df.columns[to_del_column_index], axis=1, inplace=True) # 删除多列
print(df.index) # RangeIndex(start=0, stop=6, step=1)
df.drop(df.index[[0,2]], inplace=True) # 删除多行
# print(df.insert(0,['A', 'B', 'C', 'D', 'E', 'F'], ['a','b','c','d','e','f']))
# df[df['列名'].isin([相应的值])] # 查询出现25行
print(df[df.isin([25]).any(1)]) # 查询出现25行
# print(df[df.index.isin([4])]) # ?
# print(df[df.columns.isin(['B'])]) # ?
# 插入新列用 pd.concat([df, pd.DataFrame(columns=list('DE'))]) 或reindex
print(pd.concat([df, pd.DataFrame(columns=list('G'))], sort=True))
print(df.reindex(columns=list('ABCDEFGH')))
print(df.rename(columns={'A':'AA'}, inplace=True)) # 更改列名
df.loc[0] = {"AA": 2, "B": 3, "E":6, "F":7} # 插入行
print(df)
posted @ 2019-03-07 12:55  zxpo  阅读(586)  评论(0编辑  收藏  举报