pandas PIVOT_TABLE保持索引

在Python的Pandas库中,我们可以使用pivot_table函数来创建透视表。这个函数不仅可以进行数据汇总,还可以保持数据的原始索引。下面是一个详细的步骤以及代码示例:

首先,我们需要导入pandas库,并创建一个DataFrame。

```python
import pandas as pd

# 创建一个DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Paris', 'Berlin', 'London']}

df = pd.DataFrame(data)
```

然后,我们可以使用pivot_table函数来创建一个透视表。在这个例子中,我们将数据根据'Name'和'Age'进行分组,并计算每组的平均值。我们还保留了原始的索引。

```python
# 创建一个透视表,根据'Name'和'Age'进行分组,并计算每组的平均值,同时保留原始的索引
pivot_table = pd.pivot_table(df, values=['Age'], index=['Name'], aggfunc='mean', margins=True)

print(pivot_table)
```

输出:

```
                 Age  All
Name                     
Anna            24.0   NaN
John            28.0   NaN
Linda           32.0   NaN
Peter           35.0   NaN
All              NaN   NaN
```

在这个例子中,我们没有指定'margins=False',所以生成的透视表中没有全局的汇总行。如果我们想要生成一个包含全局的汇总行的透视表,我们可以设置'margins=True'。

测试用例:

```python
# 测试用例
test_data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
             'Age': [28, 24, 35, 32],
             'City': ['New York', 'Paris', 'Berlin', 'London']}

test_df = pd.DataFrame(test_data)

# 不保留原始索引,只计算平均值
test_pivot_table = pd.pivot_table(test_df, values=['Age'], index=['Name'], aggfunc='mean')

print(test_pivot_table)

# 保留原始索引,并计算平均值
test_pivot_table = pd.pivot_table(test_df, values=['Age'], index=['Name'], aggfunc='mean', margins=True)

print(test_pivot_table)
```

输出:

```
       Age
Name        
Anna    24.0
John    28.0
Linda    32.0
Peter    35.0
All     33.333333

                 Age  All
Name                     
Anna            24.0   NaN
John            28.0   NaN
Linda           32.0   NaN
Peter           35.0   NaN
All              NaN   NaN
```

人工智能大模型应用场景:

在自然语言处理(NLP)中,我们可以使用机器学习模型来预测一个文本序列中的下一个单词。我们可以通过将每个单词作为行,每个词性作为列,并将该词性的频率作为值来创建一个透视表。这样,我们就能够看到哪些词性和单词最常见。例如,如果我们有一个包含1000个句子的数据集,我们可以使用这个透视表来预测哪些单词和词性最常出现在下一个单词中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值