【发布时间】:2018-12-14 07:23:54
【问题描述】:
我有一个从 Excel 文件中读取的 pandas 数据框。由于 Excel 文件中的第 1 行有重复值,例如 245, 245, 245,我将它们读为 pd.read_excel(file, 'myfile', header = None),所以我可以防止 pandas 创建标题 245, 245.1, 245.2 等。
这是我的df 的样子:
0 1 2 3 4
0 245 245 245 867 867
1 Reddit NaN NaN Facebook NaN
2 ColumnNeeded NaN ColumnValue ColumnNeeded ColumnValue
3 RedditInsight NaN C FacbookInsights A
4 RedditText NaN H FacbookText L
我需要这样的输出 (needed_df),
ID Company ColumnNeeded ColumnValue
0 245 Reddit RedditInsight C
1 245 Reddit RedditText H
2 867 Facebook FacbookInsight A
3 867 Facebook FacbookText L
不确定,如何在pandas 中解决这个问题。我试图从df 中获取第 1 行中的所有唯一值。
id_s = []
for i in df.iloc[0]:
id_s.append(i)
print(set(id_s))
unique_ids 列表
unique_id = list(set(id_s))
print(unique_id )
>> [867,245]
然后我想遍历df's第1行并在unique_id列表中找到所有匹配值,然后将它们拆分为单独的迷你数据帧。
我无法完成这项工作。我的想法是创建迷你数据框,迷你 df1,即:
0 1 2
0 245 245 245
1 Reddit NaN NaN
2 ColumnNeeded NaN ColumnValue
3 RedditInsight NaN C
4 RedditText NaN H
迷你df2:
0 1
0 867 867
1 Facebook NaN
2 ColumnNeeded ColumnValue
3 FacbookInsights A
4 FacbookText L
我正在考虑对这些迷你数据帧进行操作(可能使用一个函数,因此我可以应用于所有迷你 dfs),最后将它们附加到一个大数据帧。或者有没有其他想法或方法来获取我的输出数据框?
【问题讨论】:
-
@user9431057 嘿,如果我的回答有效,请告诉我
标签: python python-3.x pandas dataframe