2.1 读取excel数据
file = request.files.get("file")
read_ex = pd.read_excel(file)
df = pd.DataFrame(read_ex)
1.获取列标题:
columns = df.columns.values.tolist()
2.获取某一列数据:
area_list = df[‘大区‘].tolist() # 获取列标题为“大区”的列数据
3.设置列:
df["user"] = "lxl" # 如果没有user列,会添加这一列,并填充“lxl”
4.对一行或一列做出一些操作(axis=1遍历行,axis=0遍历列)
df = df.apply(ra_data_process, axis=1)
5.重命名行或者列索引
df.rename(columns={
"门店编码": "store_code",
"商品编码": "sku_code",
"确认补货": "modify_replenish",
"调拨": "modify_send",
"建议调入门店": "receive_store_name",
"调入门店": "modify_receive_store_name",
},
inplace=True)
# inplace:bool,default False
将结果返回赋值给原变量,无需再次将结果赋值给新变量。即df.rename(inplace=True)之后,df的值发生改变(pandas中好多方法都有这个参数,此处就演示了)
6.获取部分列数据
df = df[["大区", "门店编码"]]
7.df转化为字典:
In [9]: df.to_dict(orient=‘records‘)
Out[9]:
[{‘colA‘: ‘A‘, ‘colB‘: ‘X‘, ‘colC‘: 100, ‘colD‘: 90},
{‘colA‘: ‘A‘, ‘colB‘: nan, ‘colC‘: 50, ‘colD‘: 60},
{‘colA‘: ‘B‘, ‘colB‘: ‘Ya‘, ‘colC‘: 30, ‘colD‘: 60},
{‘colA‘: ‘C‘, ‘colB‘: ‘Xb‘, ‘colC‘: 50, ‘colD‘: 80},
{‘colA‘: ‘A‘, ‘colB‘: ‘Xa‘, ‘colC‘: 20, ‘colD‘: 50}]
8.DataFrame.loc:根据行列信息获取指定行列数据
cc1 = df.loc[1] # 1为行索引,这里获取第一行数据,从0行开始算,得到类似字典的东西,key为列索引
print(cc1[‘大区‘]) # 根据key获取这一行的值
values = cc1.values # 获取这一行数据的列表
cc1 = df.loc[[1, 2]] # 也可获取多行,这里表示获取索引为1和2两行的数据
cc1 = df.loc[[1, 2], ‘门店编码‘] 如果中括号中有两个,第二个为列,这里表示,取第1、2行,列索引为‘门店编码’的列的数据
9. DataFrame.iloc 也是取行列数据,区别在于,取数据时,不是根据行列索引,而是根据行列数,计算时不包括行列索引
dd = df.iloc[1,1] # 取第1行第1列数据, 也是从0开始计数
dd = df.iloc[[1, 2], 1] #获取第1列,第1、2行的数据
10.获取dataframe获取行数、列数
a = [[1,2,3], [4,5,6], [7,8,9],[4,5,8]]
df = pandas.DataFrame(a)
print("行数", df.shape[0]) # 4
print("列数", df.shape[1]) # 3
原文:https://www.cnblogs.com/liuxuelin/p/14659623.html