我需要在Pandas数据框中按行计算1到5的整数。例如,对于
import pandas as pd
df = pd.DataFrame({'c1': [3, 1, 2], 'c2': [3, 3, 3], 'c3': [2, 5, None], 'c4': [1, 2, 3]})
c1 c2 c3 c4
0 3 3 2.0 1
1 1 3 5.0 2
2 2 3 NaN 3
Run Code Online (Sandbox Code Playgroud)
将创建以下内容:
n1 n2 n3 n4 n5
0 1 1 2 0 0
1 1 1 1 0 1
2 0 1 2 0 0
Run Code Online (Sandbox Code Playgroud)
我遇到过.value_counts和crosstab,但是我只是无法设置其中之一来获取我需要的东西。任何帮助将非常感激。
提前致谢!
您可以做的是使用.apply数据框上的函数,如下所示:
>>> df = pd.DataFrame({'c1': [3, 1, 2], 'c2': [3, 3, 3], 'c3': [2, 5, None], 'c4': [1, 2, 3]})
>>> df
c1 c2 c3 c4
0 3 3 2.0 1
1 1 3 5.0 2
2 2 3 NaN 3
>>> df.apply(pd.Series.value_counts, axis=1)
1.0 2.0 3.0 5.0
0 1.0 1.0 2.0 NaN
1 1.0 1.0 1.0 1.0
2 NaN 1.0 2.0 NaN
Run Code Online (Sandbox Code Playgroud)
享受(:和作为参考- 统计DataFrame每行中Series中项目的出现次数
ps-很明显,如果一个数字不存在,它将不会创建一个包含大量数字的表,只是在存在最后一个数字之前填充该表,否则该表将仅包含至少具有1个出现的数字。
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |