我有一个名为DF这样的数据:(有DF没有重复行)R:按照一定的模式传输数据表
a_id b_id
111111 18
111111 17
222222 18
333333 14
444444 13
555555 18
555555 24
222222 13
222222 17
333333 17
我想将它反转为这样的数据df_2:
a_one a_two b_list number_of_b
222222 444444 13 1
111111 222222 17,18 2
111111 333333 17 1
111111 222222 17 1
222222 333333 17 1
111111 555555 18 1
222222 555555 18 1
如果a_id共享相同的b_id,则它们在df_2上成为一对;
df_2的b_list是相应的b_id;
的number_of_b是b_list的长度
我有一个Python代码
import pandas as pd
from itertools import combinations
df = df.groupby("b_id").apply(lambda x: list(combinations(x["a_id"], 2))).apply(pd.Series).stack()
df = df.apply(pd.Series).reset_index().groupby([0,1])["b_id"].apply(lambda x:x.values).reset_index()
df.columns = ["a_one", "a_two", "b_list"]
df["number_of_b"] = df.b_list.apply(len)
谁能帮我实现它R中
ü可以做dcast为此 – akrun
你能给我更具体的指导,谢谢 – kkjoe