San*_*der 7 dataframe python-3.x pandas
我在 pandas 中有一个数据框,如下所述,其中列中的元素info与列中的唯一文件相同id:
id text info
1 great boy,police
1 excellent boy,police
2 nice girl,mother,teacher
2 good girl,mother,teacher
2 bad girl,mother,teacher
3 awesome grandmother
4 superb grandson
Run Code Online (Sandbox Code Playgroud)
我只想将列表元素作为每个文件的行,例如:
id text info
1 great boy
1 excellent police
2 nice girl
2 good mother
2 bad teacher
3 awesome grandmother
4 superb grandson
Run Code Online (Sandbox Code Playgroud)
一种方法是使用pandas.DataFrame.groupby.transform.
请注意,这假设:
info每个元素的成员数相同id','info相同 id 中的元素是相同的。df["info"] = df.groupby("id")["info"].transform(lambda x: x.str.split(",").iloc[0])
print(df)
Run Code Online (Sandbox Code Playgroud)
输出:
id text info
0 1 great boy
1 1 excellent police
2 2 nice girl
3 2 good mother
4 2 bad teacher
5 3 awesome grandmother
6 4 superb grandson
Run Code Online (Sandbox Code Playgroud)