如何计算 pandas 列中字符串的字符数
How to count characters across strings in a pandas column
我有一个具有以下结构的数据框:
prod_sec
A
AA
AAAAAAAAAAB
AAAABCCCAA
AACC
ABCCCBAC
df = pd.DataFrame({'prod_sec': ['A','AA','AAAAAAAAAAB','AAAABCCCAA','AACC','ABCCCBAC']})
每个字符串都是由字母组成的序列(本例中为 A 到 C)。
我想为每个字母创建一个列表,计算整个 pandas 列中每个位置的出现次数。
例如,在第一个字符串中,A 仅在第一个 position/index 中,而不在其他位置。
在第二个字符串中,前两个位置的 A 不在其他位置
在第三个字符串中,A 拥有所有位置,直到最后一个。等等...
我想要列的总计数,按位置。
下面是 A 的例子:
A -> [1,0,0,0,0,0,0,0,0,0,0]
AA [1,1,0,0,0,0,0,0,0,0,0]
AAAAAAAAAAB -> [1,1,1,1,1,1,1,1,1,1,0]
AAAABCCCAA [1,1,1,1,0,0,0,0,0,0,1]
AACC [1,1,0,0,0,0,0,0,0,0,0]
ABCCCBAC -> [1,0,0,0,0,0,1,0,0,0,0]
所以对于 A,我想要类似于以下的输出... A [6,4,2,2,1,1,2,1,1,1,0]
最后,我试图得到一个矩阵,每个字符都有一行。
[6,4,2,2,1,1,2,1,1,1,0]
[0,1,0,0,1,1,0,0,0,0,1]
[0,0,1,1,0,1,2,0,0,0,0]
以下应该有效。您可以根据您的具体需要(numpy 数组、数据框、字典等)调整结果。如果您需要更多帮助,请告诉我。
max_length=max([len(i) for i in df.prod_sec])
d={'A':[0]*max_length, 'B':[0]*max_length, 'C':[0]*max_length}
for i in df.prod_sec:
for k in range(len(i)):
d[i[k]][k]+=1
result=pd.DataFrame.from_dict(d, orient='index')
我有一个具有以下结构的数据框:
prod_sec
A
AA
AAAAAAAAAAB
AAAABCCCAA
AACC
ABCCCBAC
df = pd.DataFrame({'prod_sec': ['A','AA','AAAAAAAAAAB','AAAABCCCAA','AACC','ABCCCBAC']})
每个字符串都是由字母组成的序列(本例中为 A 到 C)。
我想为每个字母创建一个列表,计算整个 pandas 列中每个位置的出现次数。
例如,在第一个字符串中,A 仅在第一个 position/index 中,而不在其他位置。
在第二个字符串中,前两个位置的 A 不在其他位置
在第三个字符串中,A 拥有所有位置,直到最后一个。等等...
我想要列的总计数,按位置。
下面是 A 的例子:
A -> [1,0,0,0,0,0,0,0,0,0,0]
AA [1,1,0,0,0,0,0,0,0,0,0]
AAAAAAAAAAB -> [1,1,1,1,1,1,1,1,1,1,0]
AAAABCCCAA [1,1,1,1,0,0,0,0,0,0,1]
AACC [1,1,0,0,0,0,0,0,0,0,0]
ABCCCBAC -> [1,0,0,0,0,0,1,0,0,0,0]
所以对于 A,我想要类似于以下的输出... A [6,4,2,2,1,1,2,1,1,1,0]
最后,我试图得到一个矩阵,每个字符都有一行。
[6,4,2,2,1,1,2,1,1,1,0] [0,1,0,0,1,1,0,0,0,0,1] [0,0,1,1,0,1,2,0,0,0,0]
以下应该有效。您可以根据您的具体需要(numpy 数组、数据框、字典等)调整结果。如果您需要更多帮助,请告诉我。
max_length=max([len(i) for i in df.prod_sec])
d={'A':[0]*max_length, 'B':[0]*max_length, 'C':[0]*max_length}
for i in df.prod_sec:
for k in range(len(i)):
d[i[k]][k]+=1
result=pd.DataFrame.from_dict(d, orient='index')