这里是python新手。正在研究一个项目,尝试比较3个位置的数据时寻找独特的物种。这是我构建的熊猫数据框:
linktoimageofdataframe编辑:我添加了输出图片,以某种方式列出我时的格式很奇怪:
index A B C D E F G H I J L \
0 0.0 10.0 14.0 1.0 15.0 5.0 0.0 6.0 0.0 0.0 2.0 0.0
1 1.0 31.0 12.0 9.0 0.0 0.0 0.0 0.0 2.0 0.0 0.0 1.0
2 2.0 5.0 4.0 6.0 5.0 5.0 9.0 5.0 6.0 5.0 7.0 0.0
Total 3.0 46.0 30.0 16.0 20.0 10.0 9.0 11.0 8.0 5.0 9.0 1.0
M N O P
0 0.0 0.0 0.0 0.0
1 0.0 0.0 1.0 1.0
2 2.0 1.0 0.0 0.0
Total 2.0 1.0 1.0 1.0
种由字母A-P表示。我需要做的是以某种方式比较每个物种的列中的值,并返回一个结果,表明某个物种对于特定站点是否唯一。例如,物种P仅在索引1的位置处发现,因此P在位置1处是唯一的。如果该物种在所有三个位置(例如A和B),则该物种将不返回任何内容。如果一个物种位于两个地点,但不是第三个地点,则情况相同。希望这是有道理的。该网站非常适合帮助我了解有关设置数据帧和python的一般信息,谢谢您可以提供的任何帮助!
我认为您想要:
df_unique=df.set_index('index',append=True)
uniques=df_unique.mask(df_unique.eq(0)).iloc[:-1].apply(lambda x:x.nunique()==1)
print(uniques)
A False
B False
C False
D False
E True
F True
G False
H False
I True
J False
L True
M True
N True
O True
P True
dtype: bool
然后您可以过滤数据框
df_unique=df_unique.loc[:,uniques].reset_index(level='index')
print(df_unique)
index E F I L M N O P
0 0.0 5.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
1 1.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0 1.0
2 2.0 5.0 9.0 5.0 0.0 2.0 1.0 0.0 0.0
Total 3.0 10.0 9.0 5.0 1.0 2.0 1.0 1.0 1.0