【发布时间】:2021-02-03 19:21:16
【问题描述】:
我有两个列表。
A = [0, 1, 0, 0, 1, 1, 0, 1]
B = [2, 3, 4, 5]
我要创建 C:
C = [NaN, 2, NaN, NaN, 3, 4, NaN, 5]
基本上,在A 中有一个1 我希望有一个B 的值,其中有一个0,一个NaN。
实际上,A 包含大约 10k 个元素,B 大约 40k,我有很多。我正在使用 pandas.DataFrame(每个“数组”是两个不同数据帧的列,我必须通过将其转换为 C 来“适应”B 中的 A)。
我已经用 for 循环完成了它,但我想知道如何以更好的方式做到这一点。谢谢。
【问题讨论】:
-
欢迎来到 SO。这不是讨论论坛或教程。请使用tour 并花时间阅读How to Ask 以及该页面上的其他链接。花点时间阅读用户指南pandas.pydata.org/docs/user_guide/index.html,练习示例。
-
A contains around 10k elements, B around 40k- 在您的示例中,A的项目多于B。一/零 array 总是大于还是总是小于 other 数组? -
零/一数组中1的个数是否总是等于other数组的长度?
-
A总是大于B,第二个问题的答案是是。 -
假设 A 和 B 是 Numpy ndarray:
C = np.full(A.shape,np.nan); C[A==1] = B
标签: python pandas dataframe numpy