gpt4 book ai didi

python - 如何降低二进制数据的维数?

转载 作者:行者123 更新时间:2023-11-30 09:18:57 26 4
gpt4 key购买 nike

我有一个包含二进制数据的数据框,我知道各列之间存在依赖关系。我想删除从属列并且只想保留独立列。输入示例如下:

Test ,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P
test1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1
test2,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1
test3,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1
test4,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1
test5,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1

在这里我们看到,(A,B,C,G,M), (D), (E,F), (H,I,J,K,L,P) 和 (N, O ) 是对具有相同值或依赖列进行分组的列。最后我想得到以下列:

测试,A,D,E,H,N
测试1,0,0,0,1,1
测试2,1,0,1,1,0
测试3,1,0,1,1,0
测试4,1,1,0,1,0
测试5,1,1,0,1,0

我尝试在 python 中使用 PCA 但无法实现。有人可以指导我如何实现这一目标吗?

编辑:这是我正在使用的示例代码

import pandas as pd 
import numpy as np
from sklearn.decomposition import PCA

df = pd.read_csv("TestInput.csv")
print(df)
pca = PCA()

#Remote the header and the row names
numDf = df.iloc[:,1:]
print(pca.fit(numDf))
T=pca.transform(numDf)

print("Number of unique columns are:", T.shape[1])
print(np.cumsum(pca.explained_variance_ratio_))

谢谢。

最佳答案

正在转换 this comment在答案中,使用 drop_duplicates 查找并删除重复的列。

df = df.set_index('Test')
df.T.drop_duplicates(keep='first').T

A D E H N
Test
test1 0 0 0 1 1
test2 1 0 1 1 0
test3 1 0 1 1 0
test4 1 1 0 1 0
test5 1 1 0 1 0

关于python - 如何降低二进制数据的维数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048530/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com