Python 将数据帧的行放入列表形式
我有一个表格的数据框Python 将数据帧的行放入列表形式,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个表格的数据框 T1 T2 0 A B 1 C D 2 B C 3 D E 4 F A 我想生成另一个pandas dataframe,该dataframe列出了T1和T2中的每个唯一项,并有自己的行,有一列包含该唯一项的名称,还有一列包含它在原始dataframe中与之共享一行的项的列表。例如,在本例中,我将寻找以下形式的内容: Name List 0 A [B, F] 1 B [A, C] 2 C
T1 T2
0 A B
1 C D
2 B C
3 D E
4 F A
我想生成另一个pandas dataframe,该dataframe列出了T1和T2中的每个唯一项,并有自己的行,有一列包含该唯一项的名称,还有一列包含它在原始dataframe中与之共享一行的项的列表。例如,在本例中,我将寻找以下形式的内容:
Name List
0 A [B, F]
1 B [A, C]
2 C [D, B]
3 D [C, E]
4 E [D]
5 F [A]
有人能建议一个合适的潘多尼克(比如蟒蛇,但对熊猫来说:)方法来做到这一点吗?提前谢谢 IIUC,交换列并使用
pandas.DataFrame.columns
:
df2 = df.copy()
df2.columns = df.columns[::-1]
new_df = pd.concat([df, df2])
new_df.groupby("T1")["T2"].apply(list).reset_index()
输出:
T1 T2
0 A [B, F]
1 B [C, A]
2 C [D, B]
3 D [E, C]
4 E [D]
5 F [A]
这个答案似乎和下面的答案有相同的问题——假设有重复的行。[AB]、[AB]和[BA]。在我的应用程序中,我希望A的列表包含[B,B,B](3次出现B,无需相邻)