【问题标题】:Creating a pandas series from multiple numpy arrays从多个 numpy 数组创建熊猫系列
【发布时间】:2024-04-29 05:10:04
【问题描述】:

如果我有两个 numpy 数组 np.full(10,1)np.full(10,2),那么创建 pandas 系列的最有效方法是什么?

现在我会首先创建一个 pandas DataFrame 并将其转换为 pd.Series

check = pd.DataFrame([np.full(10,1), np.full(10,2)])
check.transpose().unstack().reset_index(drop=True)
Out[0]: 
0     1
1     1
2     1
3     1
4     1
5     1
6     1
7     1
8     1
9     1
10    2
11    2
12    2
13    2
14    2
15    2
16    2
17    2
18    2
19    2
dtype: int64

这似乎效率极低,那么最聪明的方法是什么?

【问题讨论】:

  • np.hstack 可以将这些数组合并为一个。
  • 使用字典键和值,其中每个值都是一个系列,然后使用字典创建数据框
  • 1.在numpy中合并数据,2.直接构造PandasSeries而不是DataFrame。 pd.Series(np.hstack((np.full(10,1), np.full(10,2))))

标签: python pandas numpy


【解决方案1】:

pd.Series(np.concatenate([arr1,arr2]))怎么样

【讨论】:

  • pd.Series(np.concatenate([arr1,arr2]))