【发布时间】:2022-08-03 00:32:05
【问题描述】:
我正在尝试将数据框的行作为单独的列表。此列表应仅包含特定行中特定行数的值。例如,如下所示的数据框应仅将行打印为列表一个接一个:
Name Age Gender
Michael 5 M
Fitz 10 F
应该打印出来
[Michael, 5, M]
[Fitz, 10, F]
我知道 df.loc[[1]] 打印出第一行,但它也打印出列名。我正在尝试摆脱列名并仅列出行值。
我正在尝试将数据框的行作为单独的列表。此列表应仅包含特定行中特定行数的值。例如,如下所示的数据框应仅将行打印为列表一个接一个:
Name Age Gender
Michael 5 M
Fitz 10 F
应该打印出来
[Michael, 5, M]
[Fitz, 10, F]
我知道 df.loc[[1]] 打印出第一行,但它也打印出列名。我正在尝试摆脱列名并仅列出行值。
根据您的能力,您可以使用DataFrame.apply 将行加入列表,或者只是将 DataFrame 转换为行列表
cols = ['Name', 'Age', 'Gender']
out = df[cols].apply(list, axis=1)
# or
lsts = df[cols].values.tolist()
print(out)
0 [Michael, 5, M]
1 [Fitz, 10, F]
dtype: object
print(lsts)
[['Michael', 5, 'M'], ['Fitz', 10, 'F']]
【讨论】:
根据它是标题行还是常规行,您有两个选择:
# If the first row is a header row.
df.values.tolist()
# If the first row is a regular row. Where the [1:] determines how many of the rows
# you want to remove.
df.values.tolist()[1:]
两者都产生:
[['Michael', 5, 'M'], [10, 'F', 'Fitz']]
【讨论】: