【发布时间】:2017-12-05 14:26:52
【问题描述】:
我有一个格式如下的 csv 文件,
Type_A, Type_B, Type_C
x1,x2,x3
y1,y2,y3
我需要按以下格式构建嵌套字典或数据框
Type_A
ID Value
1 x1
2 y1
Type_B
ID Value
1 x2
2 y2
Type_C
ID Value
1 x3
2 y3
在我的第一次尝试中,这就是我所做的
import pandas as pd
df=pd.read_csv(csv_file)
df
Output:
Type_A Type_B Type_C
0 x1 x2 x3
1 y1 y2 y3
虽然我需要做的就是读取列表中的每一列,然后在将其组合到字典或嵌套数据帧中之前添加索引
所以这就是我将它们存储在列表中的方法。
import pandas as pd
df=pd.read_csv(csv_file)
d1=df.Type_A.tolist()
d2=df.Type_B.tolist()
d3=df.Type_C.tolist()
然后添加索引使用enumerate()
d1_df=list(enumerate(d1, 1))
d2_df=list(enumerate(d2, 1))
d3_df=list(enumerate(d3, 1))
d1_df # this gives me [(1, 'x1'), (2, 'y1')]
接下来我将标签 Id 和 Value 添加到数据框
labels = ['Id','Value']
d1_df = pd.DataFrame.from_records(d1_df, columns=labels)
d2_df = pd.DataFrame.from_records(d2_df, columns=labels)
d3_df = pd.DataFrame.from_records(d3_df, columns=labels)
d1_df # this gives me Id Value
# 0 1 x1
# 1 2 y1
现在我需要以某种方式将它们嵌套在字典中
【问题讨论】:
-
您能否使您的键值对独一无二,以便我们看到一个模式?也许
x1,x2,x3和y1,y2,y3? -
实际上所有的 x 都是相同的值,所有的 y 也是相同的值,但是在某些情况下 x 之一可能是 NaN。将其视为 3 个集合,集合 A、集合 B 和集合 C 都可能具有相同的成员,但有时其中一个集合可能缺少一个成员,在这种情况下,它被加载为 NaN。我正在尝试构建此 dict 以在 PyUpset 中使用它,这有助于可视化集合之间的重叠。
-
我认为我已经在一定程度上解决了问题并编辑了问题以反映我的进度
标签: python python-3.x pandas visualization