如果用pandas中的to_dict()方法,怎样让三列的键合成一个共同的键,值为一个包含每一行的三个元素的列表
时间: 2024-09-30 07:14:01 浏览: 29
对pandas中to_dict的用法详解
如果你想将Pandas DataFrame中三列的值组合成一个新的键,并将这三列的值作为单个列表存储,你可以先创建新的复合键,然后利用`to_records()`方法将DataFrame转换为`pandas.core.internals.ExtensionArray`对象,最后再次转化为字典。这里有一个示例:
```python
import pandas as pd
# 假设你有一个DataFrame df,其中包含三列A、B和C
df = pd.DataFrame({
'A': [1, 2, 3],
'B': ['a', 'b', 'c'],
'C': [4, 5, 6]
})
# 创建复合键,这里是'A_B_C'
composite_key = df[['A', 'B', 'C']].agg('_'.join, axis=1)
# 使用to_records()将DataFrame转换为记录数组
records_array = df.to_records(index=False)
# 将记录数组按新键分组,得到一个Series,值是包含三列值的列表
result_dict = records_array.groupby(composite_key).apply(lambda x: list(x[['A', 'B', 'C']]))
# 结果是一个字典,键是复合键,值是列表
print(result_dict)
```
阅读全文