从熊猫数据框列或行中获取列表?

新手上路,请多包涵

我有一个从 Excel 文档导入的数据 df ,如下所示:

 cluster load_date   budget  actual  fixed_price
A   1/1/2014    1000    4000    Y
A   2/1/2014    12000   10000   Y
A   3/1/2014    36000   2000    Y
B   4/1/2014    15000   10000   N
B   4/1/2014    12000   11500   N
B   4/1/2014    90000   11000   N
C   7/1/2014    22000   18000   N
C   8/1/2014    30000   28960   N
C   9/1/2014    53000   51200   N

我希望能够将第 1 列 df['cluster'] 的内容作为列表返回,这样我就可以对其运行 for 循环,并为每个集群创建一个 Excel 工作表。

是否也可以将整列或整行的内容返回到列表中?例如

list = [], list[column1] or list[df.ix(row1)]

原文由 yoshiserry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 568
2 个回答

当您将 Pandas DataFrame 列拉出时,它们就是 Pandas 系列,然后您可以调用 x.tolist() 将它们变成 Python 列表。或者,您可以使用 list(x) 进行投射。

 import pandas as pd

data_dict = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']),
             'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(data_dict)

print(f"DataFrame:\n{df}\n")
print(f"column types:\n{df.dtypes}")

col_one_list = df['one'].tolist()

col_one_arr = df['one'].to_numpy()

print(f"\ncol_one_list:\n{col_one_list}\ntype:{type(col_one_list)}")
print(f"\ncol_one_arr:\n{col_one_arr}\ntype:{type(col_one_arr)}")

输出:

 DataFrame:
   one  two
a  1.0    1
b  2.0    2
c  3.0    3
d  NaN    4

column types:
one    float64
two      int64
dtype: object

col_one_list:
[1.0, 2.0, 3.0, nan]
type:<class 'list'>

col_one_arr:
[ 1.  2.  3. nan]
type:<class 'numpy.ndarray'>

原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议

这将返回一个 numpy 数组:

 arr = df["cluster"].to_numpy()


这将返回一个 唯一 值的 numpy 数组:

 unique_arr = df["cluster"].unique()

您也可以使用 numpy 来获取唯一值,尽管这两种方法之间存在差异:

 arr = df["cluster"].to_numpy()
unique_arr = np.unique(arr)

原文由 Anirudh Bandi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题