DataFrame to list
方法1:
将DF的某列转换成列表,直接将DF的某列的值转换,df1[‘colums_name’].values.tolist()
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| df = pd.read_excel('DHAC.xls', sheet_name='销售单') a = df['DHAC编号'].values.tolist() b = df['订单号'].values.tolist() c = df['订单号'].drop_duplicates().values.tolist()
print(''' a的类型是:{} a的序列有:{} 个 c的序列有:{} 个 '''.format(type(a), len(a), len(c)))
----> a的类型是:<class 'list'> a的序列有:1846 个 c的序列有:130 个
|
方法2:
直接将整个DF转成列表. df1.values.tolist()
1 2 3 4 5 6 7 8 9 10
| a=df.values.tolist()
print(''' df的类型是:{},长度是: {} a的类型是:{} ,长度是: {} '''.format(type(df), len(df),type(a), len(a)))
---> df的类型是:<class 'pandas.core.frame.DataFrame'>,长度是: 1846 a的类型是:<class 'list'> ,长度是: 1846
|
方法3:
用list的函数list强制转换,只对单列有效. list(df1[‘columns_name’])
1 2 3 4 5 6 7 8 9
| a=list(df['订单号']) print(''' df的类型是:{},长度是: {} a的类型是:{} ,长度是: {} '''.format(type(df), len(df),type(a), len(a)))
----> df的类型是:<class 'pandas.core.frame.DataFrame'>,长度是: 1846 a的类型是:<class 'list'> ,长度是: 1846
|
list to DataFrme
将1个列表转成DF,列表中没有子列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| df = pd.read_excel('dh.xls', sheet_name='销售单') a = df['DHAC编号'].values.tolist() df1=pd.DataFrame(a,columns=['DHAC编号']) print('这里是列表的0序列:','\n',a[0]) print() print('这里是表框的头两行','\n',df1.head(2))
---> 这里是列表的0序列: DH5DS508
这里是表框的头两行 DHAC编号 0 DH5DS508 1 DH5TP505
|
将两个没有子列表的列表转换成DF.
先将两个列表组成字典,并设置KEY. 然后转成DF,不再需要设置colums的值
1 2 3 4 5 6 7 8 9 10 11
| df = pd.read_excel('dh.xls', sheet_name='销售单') a = df['DHAC编号'].values.tolist() b = df['订单号'].values.tolist() k={'编号':a ,'订单':b} df1=pd.DataFrame(k) print('这里是表框的头两行','\n',df1.head(2)) ---> 这里是表框的头两行 编号 订单 0 DH5DS508 9JD7113 1 DH5TP505 9JD7113
|
将由子列表组成的列表转换成DF.
输入的列标题个数必须与子列表中的元素个数匹配。
1 2 3 4 5 6 7 8 9 10
| df = pd.read_excel('dh.xls', sheet_name='销售单') c= df.values.tolist() df2=pd.DataFrame(c,columns=['日期','编号','订单', '规格' , '数量'])
print('这里是表框的头两行','\n',df2.head(2)) ---> 这里是表框的头两行 日期 编号 订单 规格 数量 0 2017-01-13 9JD7113 DH5DS508 D3.95*100 6.0 1 2017-01-13 9JD7113 DH5TP505 302822841 10.0
|