python中array/list/DataFrame间的转化

本文介绍了如何在Python中进行numpy数组、列表和pandasDataFrame之间的转换,包括flatten和reshape操作,以及DataFrame的多维取值方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

array/list/DataFrame间的转化:

import numpy as np
import pandas as pd

lis=[[1, 2, 3], [4, 5, 6]]

#list转array
arr=np.array(lis)  
print(arr)    #[[1 2 3]
              # [4 5 6]]


#array转list:
list(arr)     #[array([1, 2, 3]), array([4, 5, 6])]
arr.tolist()  #[[1, 2, 3], [4, 5, 6]]


#array转DateFrame
df=pd.DataFrame(arr,columns=['one','tow','three'])
df            #     one	tow	three
              #0	1	2	3
              #1	4	5	6


#DateFrame转array
df.to_numpy()
df.values     #array([[1, 2, 3],
              #       [4, 5, 6]])


#list转array
arr=np.array(lis)
print(arr)    #[[1 2 3]
              # [4 5 6]]

arr=np.array([[1, 2, 3], [4, 5, 6]])
lis1=list(arr)
lis2=arr.tolist()
panda=pd.DataFrame(arr,columns=['one','tow','three'])
arr.tolist()
arr2=panda.values
print("list转array:\n np.array:\n{}\n\n\
array转list:\nlist():\n{}\n\n\
arr.tolist():\n{}\n\n\
arr转dateFrame:\n{}\n\n\
dateFrame里面的数据:\npanda.values:\n{}".format(arr,lis1,lis2,panda,arr2))

array取值:

# 对数组的操作(索引和切片)
print(arr[0])  # 输出:1
print(arr[1:4])  # 输出:[2 3 4]

维度转化:

#平铺:
arr.flatten()  #[1 2 3 4 5 6] 

arr.reshape(-1) #[1 2 3 4 5 6]

dateFrame取值:


#取'one'列带列名
#返回的数据类型是 pandas.DataFrame
df[['one']]
#    one
#0    1
#1    4 

#取所有行,'one'列,带列名
#返回的数据类型是 pandas.DataFrame
pd.loc[:,['one']]
#    one
#0    1
#1    4 


#取'one'列不带列名
#返回的数据类型是 pandas.Series
pd.one
# 0    1
#1    4
#Name: one, dtype: int32 

#取'one'列不带列名
#返回的数据类型是 pandas.Series
pd['one']
# 0    1
#1    4
#Name: one, dtype: int32 




#取所有行,'one'列,不带列名
#返回的数据类型是 pandas.Series
pd.iloc[:,0]
# 0    1
#1    4
#Name: one, dtype: int32 


#取所有行,'one'列,不带列名
#返回的数据类型是 pandas.Series
pd.loc[:,'one']
# 0    1
#1    4
#Name: one, dtype: int32
print("panda[['one']]:\n",panda[['one']],"\n\npanda.loc[:,['one']]:\n",panda.loc[:,['one']],"\n\n"
      ,"panda.iloc[:,0]:\n",panda.iloc[:,0],"\n\n","panda.one:\n",panda.one,"\n\n","panda['one']:\n",panda['one'],"\n\n","panda.loc[:,'one']:\n",panda.loc[:,'one'])

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值