gpt4 book ai didi

python - 如何使用 python pandas 对分割文本进行分组并计算其数量?

转载 作者:行者123 更新时间:2023-11-28 21:35:36 27 4
gpt4 key购买 nike

输入:

import pandas as pd

df=pd.DataFrame({
'Station':['001ABC006','002ABD008','005ABX009','007ABY010','001ABC006','002ABD008'],
'Trains Passing':[55,56,59,96,95,96],
'Destination':['MRK','MRK','MRS','MTS','KPS','KPS']

})

我需要将 Station 文本从“001ABC006”拆分为“ABC”并创建一个列表。仅计算列表中存在的值。还按目的地分组。我怎样才能做到呢?

输出:

  StationId ABC ABD ABX ABY
MRK 1 1 0 0
MRS 0 0 1 0
MTS 0 0 0 1
KPS 1 1 0 0

最佳答案

已更新

In [180]: pd.crosstab(df.Destination, df.Station.str[3:6])
Out[180]:
Station ABC ABD ABX ABY
Destination
KPS 1 1 0 0
MRK 1 1 0 0
MRS 0 0 1 0
MTS 0 0 0 1

你可以使用

In [160]: pd.DataFrame([df.Station.str[3:6].value_counts().to_dict()])
Out[160]:
ABC ABD ABX ABY
0 2 2 1 1

或者,

In [149]: df.Station.str[3:6].value_counts().to_frame().T
Out[149]:
ABC ABD ABX ABY
Station 2 2 1 1

详情

In [162]: df.Station.str[3:6]
Out[162]:
0 ABC
1 ABD
2 ABX
3 ABY
4 ABC
5 ABD
Name: Station, dtype: object

In [163]: df.Station.str[3:6].value_counts()
Out[163]:
ABC 2
ABD 2
ABX 1
ABY 1
Name: Station, dtype: int64

关于python - 如何使用 python pandas 对分割文本进行分组并计算其数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52089327/

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