我有一个电子表格,其中我在不同列中记录了城市并分布在不同行

例如,这是我的数据集

df = pd.DataFrame([['Jersey City','NYC','Miami','Charlotte'],
   ['Santa Clara','Santa Barbara','NYC'],
   ['Jersey City','Miami']])

所以这就是我试图做的,首先是一个转置

df.transpose()

输出是
print(df.transpose().to_string())

             0              1            2
0  Jersey City    Santa Clara  Jersey City
1          NYC  Santa Barbara        Miami
2        Miami            NYC         None
3    Charlotte           None         None

(删除重复项)

我不确定我的方法是否是理想的方法,或者有更好的方法

最佳答案

这将起作用:

数据

df = pd.DataFrame([['Jersey City','NYC','Miami','Charlotte'],
   ['Santa Clara','Santa Barbara','NYC'],
   ['Jersey City','Miami']])

print(df.to_string())

             0              1      2          3
0  Jersey City            NYC  Miami  Charlotte
1  Santa Clara  Santa Barbara    NYC       None
2  Jersey City          Miami   None       None

解决方案
(无论有没有转置,您都会得到相同的结果)
df.transpose().stack().drop_duplicates().reset_index(drop=True)

0      Jersey City
1      Santa Clara
2              NYC
3    Santa Barbara
4            Miami
5        Charlotte
dtype: object
df.stack().drop_duplicates().reset_index(drop=True)

0      Jersey City
1              NYC
2            Miami
3        Charlotte
4      Santa Clara
5    Santa Barbara

关于python - 将多列合二为一,删除重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59201852/

10-12 19:58