【问题标题】:Pandas - Shift column valuesPandas - 移动列值
【发布时间】:2018-10-30 03:45:47
【问题描述】:

我有一个这样的数据框:

Name_A ¦ id1 ¦ 日期 1 ¦ 1

Name_A ¦ id1 ¦ 日期 2 ¦ 0

Name_A ¦ id1 ¦ 日期 3 ¦ 1

Name_A ¦ id1 ¦ 日期 4 ¦ 1

Name_A ¦ id1 ¦ 日期 5 ¦ 1

Name_B ¦ id2 ¦ 日期 6 ¦ 0

Name_B ¦ id2 ¦ 日期 7 ¦ 1

Name_B ¦ id2 ¦ 日期 8 ¦ 1

...

我想得到这个:

Name_A ¦ date1 ¦ 0

Name_A ¦ date2 ¦ 1

Name_A ¦ date3 ¦ 1

Name_A ¦ date4 ¦ 1

Name_A ¦ date5 ¦ NaN

Name_B ¦ date6 ¦ 1

Name_B ¦ date7 ¦ 1

Name_B ¦ date8 ¦ NaN

...

我想为特定名称组移动列上的值。

有什么想法/建议吗?谢谢。

【问题讨论】:

标签: python pandas group-by


【解决方案1】:

您可以将其存储在字典中,当您调用它时,跳过 id 字段。

dictionary_from_data_frame = {"NameA":["NameA","id1", "date 2", 0]}

当你回调它时,

_val = dictionary_from_data_frame["NameA"]

_val[0]|_val[2]|_val[3]

希望你的想法。

干杯!

【讨论】:

    【解决方案2】:

    如果要移动最后一列中的值,则可以使用 iloc 选择该列,然后将其设置为自身的重新排序。例如:

    df.iloc[:,2] = [df.iloc[:,2][i] for i in [2,0,1]]

    这会选择第二列,然后对其进行重新排序,以便第三行条目现在是第一个,然后旧的第一行条目现在是第二个等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-11
      • 1970-01-01
      • 2017-02-21
      • 2023-02-23
      • 1970-01-01
      • 2018-01-21
      相关资源
      最近更新 更多