gpt4 book ai didi

python - 计算 Pandas 中整个数据框中特定字符串的数量,并将其值添加到新列中

转载 作者:行者123 更新时间:2023-12-04 08:14:57 25 4
gpt4 key购买 nike

我有一个 5 列数据框,我需要找到第一列(A)中每个元素重复的次数,并在新列(F)中该元素前面添加数量,例如第一列中的“a” (A) 在整个数据框中重复 5 次,因此需要创建 column() 并在第 0 行的相关单元格中添加 5,依此类推。感谢您的支持。我是python的新手,需要您的宝贵意见。
下面是原始数据框:

A   B   C   D   E
a -
b a -
c a -
d b a -
e d b a -
首选数据框是:
A   B   C   D   E   F
a - 5
b a - 3
c a - 1
d b a - 2
e d b a - 1
到目前为止,我已经在下面几行编码,但我无法创建具有总和的新列。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'},
'B': {0: '-', 1: 'a', 2: 'a', 3: 'b', 4: 'd'}})

df['C'] = np.where(df['B'].isin(df['A'].values), df['B'], np.nan)
df['C'] = df['C'].map(dict(zip(df.A.values, df.B.values)))
df['D'] = np.where(df['C'].isin(df['B'].values), df['C'], np.nan)
df['D'] = df['D'].map(dict(zip(df.B.values, df['C'].values)))
df['E'] = np.where(df['D'].isin(df['C'].values), df['D'], np.nan)
df['E'] = df['E'].map(dict(zip(df['C'].values, df['D'].values)))

for cell in df['A']:
print(cell)
m=df.eq(cell).sum()
# pd.DataFrame([m.values], columns=m.index)
dep=sum(m)
print(dep)
print(df)
以下是上述代码的输出:
一种
5

3
C
1
d
2
电子
1
A   B   C   D   E
a -
b a -
c a -
d b a -
e d b a -

最佳答案

您可以使用 Counter 创建一个映射字典,其中包含数据帧中的唯一元素作为其键并将它们的计数作为值,然后 .map 这本词典列在A :

from collections import Counter

df['F'] = df['A'].map(Counter(np.ravel(df)))
   A  B  C  D  E  F
0 a - 5
1 b a - 3
2 c a - 1
3 d b a - 2
4 e d b a - 1

关于python - 计算 Pandas 中整个数据框中特定字符串的数量,并将其值添加到新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65749805/

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