如果可能的话,我想使用列表理解从下面的输出生成一个元组。
df = pd.DataFrame([[1,2]], columns=['a','b'])
df.iloc[0]
Output:
a 1
b 2到目前为止,这是我能得到的最接近的:
[(x,y) for x in df.iloc[0].index for y in df.iloc[0]]
Output:
[('a', 1), ('a', 2), ('b', 1), ('b', 2)]我知道我可以手动删除(a, 2)和(b, 1),但我想知道是否有一种方法可以在不产生不必要的结果和过滤的情况下获得所需的输出。
发布于 2020-11-25 03:42:33
您在代码中所犯的错误是,在list将这些循环作为嵌套循环的地方,您将两个循环放在一边。使用zip来避免嵌套循环。
df = pd.DataFrame([[1,2]], columns=['a','b'])
[(x,y) for x,y in zip(df.iloc[0].index, df.iloc[0])]Ouput
[('a', 1), ('b', 2)]您也可以使用元组。
tuple(zip(df.iloc[0].index, df.iloc[0]))发布于 2020-11-25 03:54:49
为了处理N行..。
[(k,v[i]) for k,v in df.to_dict().items() for i in range(len(v))]https://stackoverflow.com/questions/64998150
复制相似问题