我在此post的前面发布了一个问题。我以为我会分开问这个问题,因为这只是将大数据帧分为单独的迷你/子数据帧的一种操作。
说,我有这个df
:
245 245 245 867 867
0 Reddit NaN NaN Facebook NaN
1 ColumnNeeded NaN ColumnValue ColumnNeeded ColumnValue
2 RedditInsight NaN C FacbookInsights A
3 RedditText NaN H FacbookText L
现在,我想要这样两个不同的数据帧,
df1
:
245 245 245
0 Reddit NaN NaN
1 ColumnNeeded NaN ColumnValue
2 RedditInsight NaN C
3 RedditText NaN H
df2
:
867 867
0 Facebook NaN
1 ColumnNeeded ColumnValue
2 FacbookInsights A
3 FacbookText L
基本上,我想通过标头的唯一值来创建子数据帧。 我正在尝试创建一个像这样的列表:
list_of_dfs = [set(i) for i in df.columns]
这仅返回列值,
[{245}, {245}, {245}, {867}, {867}]
有什么想法我该怎么做?
答案 0 :(得分:2)
由于您需要重置索引并获取列的每个唯一名称的子数据帧,因此需要:
[df[i].reset_index(drop=True) for i in df.columns.unique()]
输出:
[
245 245 245
0 Reddit NaN NaN
1 ColumnNeeded NaN ColumnValue
2 RedditInsight NaN C
3 RedditText NaN H,
867 867
0 Facebook NaN
1 ColumnNeeded ColumnValue
2 FacbookInsights A
3 FacbookText L
]