【问题标题】:Pandas How to Align Two Columns in a DataFrame and NaN empty cellsPandas 如何对齐 DataFrame 和 NaN 空单元格中的两列
【发布时间】:2022-01-15 12:46:49
【问题描述】:

我正在使用 Python 3.8.8

我有一个如下结构的 DataFrame:

A B
0 1
1 2
2 1
3 7
4 7
5 8

还有一个数组:

C = [3, 4, 7]

我想将数组“C”作为新列添加到 DataFrame。问题是这个数组的索引长度与 df 不同。我想通过用 NaN 填充空单元格来弥补 C 中的长度差异。我想要的结果看起来像:

A B C
0 1 NaN
1 2 NaN
2 1 3
3 7 4
4 7 7
5 8 NaN

我正在寻找一种从 df 的特定索引开始添加 C 的方法,但我不知道如何解决 df 和数组长度之间的差异。

感谢您的宝贵时间

【问题讨论】:

    标签: arrays pandas dataframe nan


    【解决方案1】:

    要解决将列表放入数据框时“长度不同”的问题,您可以将其转换为 pandas series。完成此操作后,您可以轻松地将其添加到数据框中,其余值将填充为 np.nan

    在您的情况下,您还可以在将 C list 转换为 series 时特别设置 index,然后您可以将其分配给您的 dataframePandas 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 应该很简单。

    【讨论】:

    • 谢谢,这就是我要找的!
    • 这里不需要合并.... pandas 会自动对齐索引。 c = pd.Series([3, 4, 7],index=[2,3,4]) 然后df['C'] = c data alignment is intrinsic
    • 当然。感谢您的更正和链接@Scott。我已经相应地更新了。
    猜你喜欢
    • 2021-11-14
    • 2017-06-10
    • 2017-08-08
    • 2018-09-11
    • 1970-01-01
    • 2018-05-29
    • 2014-06-12
    • 1970-01-01
    • 2016-12-26
    相关资源
    最近更新 更多