Pandas - Shift列值

时间:2018-05-20 07:41:32

标签: python pandas group-by

我有一个这样的数据框:

Name_A | id1 | date 1 | 1

Name_A | id1 | date 2 | 0

Name_A | id1 | date 3 | 1

Name_A | id1 | date 4 | 1

Name_A | id1 | date 5 | 1

Name_B | id2 | date 6 | 0

Name_B | id2 | date 7 | 1

Name_B | id2 | date 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

...

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

任何想法/建议?感谢。

2 个答案:

答案 0 :(得分:0)

您可以将其存储在字典中,当您回拨它时,请跳过ID字段。

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

当你回电话时,

_val = dictionary_from_data_frame["NameA"]

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

希望你的想法。

干杯!

答案 1 :(得分:0)

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

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

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