我使用的是 Python 3.8.8
我的 DataFrame 结构如下:
和一个数组:
C = [3,4,7]
我想添加一个数组“C”作为 DataFrame 的新列。问题是该数组的索引长度与 df 不同。我想通过用 NaN 填充空单元格来弥补 C 中的长度差异。我想要的结果看起来像:
我正在寻找一种从 df 的特定索引开始添加 C 的方法,但我不知道如何解决 df 和数组长度之间的差异。
感谢您的宝贵时间
最佳答案
为了解决将列表放入数据帧时“长度不同”的问题,您可以将其转换为 pandas
series
。完成此操作后,您可以轻松地将其添加到数据框中,其余值用 np.nan
填充。
就您而言,当您将 C list
转换为 series
时,您还可以专门设置 index
,然后您可以将其分配到您的数据框
。 Pandas nature to align data on indices会将系列放在正确的索引上
考虑使用下面的代码:
c = pd.Series([3, 4, 7],index=[2,3,4])
df['C'] = c
打印:
A B 0
0 0 1 NaN
1 1 2 NaN
2 2 1 3.0
3 3 7 4.0
4 4 7 7.0
5 5 8 NaN
重命名 0
应该很简单。
关于arrays - Pandas 如何对齐 DataFrame 中的两列和 NaN 空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70311059/