python - 将熊猫列值转换为列
问题描述
我有一个包含列值的数据框,我想将其与现有列组合。这是一个示例数据框和所需的结果。有什么想法可以创建 result_df 吗?
import pandas as pd
d = {'city' : ['New York','New York', 'Shanghai', 'Shanghai', 'Boston', 'Boston'],
'rooms': ["1","2","1","2","1", "2"], 'rent': [500, 1000, 1500, 2000, 2500 ,3000]}
df = pd.DataFrame(data = d)
result = {'city' : ['New York', 'Shanghai','Boston'],
'rent_1': [500, 1500, 2500], 'rent_2': [1000, 2000, 3000]}
result_df = pd.DataFrame(data = result)
解决方案
try pd.crosstab
with .add_prefix
df1 = pd.crosstab(df['city'],df['rooms'],
df['rent'],aggfunc=lambda x : x)\
.add_prefix('rent_')\
.reset_index().rename_axis("",axis=1)
print(df1)
city rent_1 rent_2
0 Boston 2500 3000
1 New York 500 1000
2 Shanghai 1500 2000
or use .unstack()
df.set_index(['city','rooms']).unstack(1).add_prefix('rent_').droplevel(0,1)\
.reset_index().rename_axis("",axis=1)
city rent_1 rent_2
0 Boston 2500 3000
1 New York 500 1000
2 Shanghai 1500 2000
推荐阅读
- java - 当我尝试解析时,scala 中的日期时间没有正确解析。显示所有日期的默认时间
- powershell - 如何转义 $* 中的所有引号以将其从 CMD 传递给 PowerShell
- css - 有没有办法暂停特定的 CSS3 动画
- java - 如何使用 Java 索引磁盘上的文件名
- batch-file - 批处理,我可以发布我的脚本来感谢那些帮助过我的人吗?
- c++ - 实现归并排序代码时无法计算所有反转
- javascript - Javascript 函数 - 在文件中调用两个函数
- python - 文件操作在相对路径中不起作用
- c - Eclipse 控制台不输出任何内容
- python - Django 发出跟随/取消关注的信号