我需要有关 pandas 数据框的帮助
I need help working with pandas dataframe
我有一个大的项目数据框,简化如下。我正在寻找在每一行中找到重复次数大于或等于 2 次的项目(A、B、C)的好方法。
例如在第 1 行中它是 A 而在第 2 行中结果是 B.
简化 df:
df = pd.DataFrame({'C1':['A','B','A','A','C'],
'C2':['B','A','A','C','B'],
'C3':['A','B','A','C','C']},
index =['ro1','ro2','ro3','ro4','ro5']
)
由于您有三列 并且始终是非唯一的,您可以方便地使用 mode
.
df.mode(1)[0]
输出:
ro1 A
ro2 B
ro3 A
ro4 C
ro5 C
Name: 0, dtype: object
如果您可能拥有所有唯一值(例如 A/B/C),您需要检查模式是否不唯一:
m = df.mode(1)[0]
m2 = df.eq(m, axis=0).sum(1).le(1)
m.mask(m2)
就像mozway建议的那样,我们不知道你的输出是什么。我假设你需要一个列表。
你可以试试这样的方法。
import pandas as pd
from collections import Counter
holder = []
for index in range(len(df)):
temp = Counter(df.iloc[index,:].values)
holder.append(','.join([key for key,value in temp.items() if value >= 2]))
我有一个大的项目数据框,简化如下。我正在寻找在每一行中找到重复次数大于或等于 2 次的项目(A、B、C)的好方法。
例如在第 1 行中它是 A 而在第 2 行中结果是 B.
简化 df:
df = pd.DataFrame({'C1':['A','B','A','A','C'],
'C2':['B','A','A','C','B'],
'C3':['A','B','A','C','C']},
index =['ro1','ro2','ro3','ro4','ro5']
)
由于您有三列 并且始终是非唯一的,您可以方便地使用 mode
.
df.mode(1)[0]
输出:
ro1 A
ro2 B
ro3 A
ro4 C
ro5 C
Name: 0, dtype: object
如果您可能拥有所有唯一值(例如 A/B/C),您需要检查模式是否不唯一:
m = df.mode(1)[0]
m2 = df.eq(m, axis=0).sum(1).le(1)
m.mask(m2)
就像mozway建议的那样,我们不知道你的输出是什么。我假设你需要一个列表。
你可以试试这样的方法。
import pandas as pd
from collections import Counter
holder = []
for index in range(len(df)):
temp = Counter(df.iloc[index,:].values)
holder.append(','.join([key for key,value in temp.items() if value >= 2]))