我有一个带有数据的excel文件,如下所示:
Col_Title1 | Col_Title2 | Col_Title3 | Label
Row11 | Row12 | Row13 | 1
Row21 | Row22 | Row23 | 2
Row31 | Row32 | Row33 | 3
使用pandas,我读取这个excel文件,如下所示:
import pandas as pd
df = pd.read_excel(FOLDER_DOWNLOAD_LOCATION + '1.xlsx', sheet_name='Sheet1')
现在,我希望使用df
输出以下列表:
1. [[Row11, Row12, Row13], [Row21, Row22, Row23], [Row31, Row32, Row33]]
2. [1,2,3]
我不知道获得这种类型的列表输出的有效方法或好方法。
附:我是编程的新手,很抱歉提出这类问题。
我相信你需要删除Label
列,通过values
转换为numpy数组,然后转换为list
:
a = df.drop('Label', 1).values.tolist()
print (a)
[['Row11', 'Row12', 'Row13'], ['Row21', 'Row22', 'Row23'], ['Row31', 'Row32', 'Row33']]
b = df['Label'].values.tolist()
print (b)
[1, 2, 3]
一种方法是使用切片,假设您事先知道列的顺序。
df_values = df.values
# [['Row11' 'Row12' 'Row13' 1]
# ['Row21' 'Row22' 'Row23' 2]
# ['Row31' 'Row32' 'Row33' 3]]
然后切片适当:
df_values[:, :-1].tolist()
# [['Row11', 'Row12', 'Row13'],
# ['Row21', 'Row22', 'Row23'],
# ['Row31', 'Row32', 'Row33']]
df_values[:, -1].tolist()
# [1, 2, 3]
选项1
np.split
a, b = np.split(df.values, [-1], axis=1)
a.tolist()
[['Row11', 'Row12', 'Row13'],
['Row21', 'Row22', 'Row23'],
['Row31', 'Row32', 'Row33']]
b.ravel().tolist()
[1, 2, 3]
选项2
pd.DataFrame.pop
b = df.pop('Label')
df.values.tolist()
[['Row11', 'Row12', 'Row13'],
['Row21', 'Row22', 'Row23'],
['Row31', 'Row32', 'Row33']]
b.values.tolist()
[1, 2, 3]