如何将1列52行的DataFrame转为4列13行并调整索引与列名
问题1:将1列52行的DataFrame转换为4列13行结构
直接通过数组重塑即可实现,步骤如下:
- 假设你的单列DataFrame名为
df_single,提取其底层数据并重塑为13行4列的二维数组,再重新构造DataFrame:
import pandas as pd # 示例:构造1列52行的DataFrame df_single = pd.DataFrame([f"{rank}{suit}" for rank in ['2','3','4','5','6','7','8','9','T','J','Q','K','A'] for suit in ['s','h','d','c']]) # 转换为4列13行结构 df_reshaped = pd.DataFrame(df_single.values.reshape(13, 4))
values.reshape(13, 4)会按行优先顺序把原单列数据重新排列,刚好匹配52=13×4的数量关系,生成目标结构。
问题2:修改DataFrame的索引为1-13、列名为1-4
针对你给出的13行4列DataFrame,直接赋值修改索引和列名即可:
# 假设你的DataFrame名为df # 设置索引为1到13 df.index = range(1, 14) # 设置列名为1到4 df.columns = range(1, 5)
修改后你的DataFrame会呈现如下结构:
1 2 3 4 1 2s 2h 2d 2c 2 3s 3h 3d 3c 3 4s 4h 4d 4c 4 5s 5h 5d 5c 5 6s 6h 6d 6c 6 7s 7h 7d 7c 7 8s 8h 8d 8c 8 9s 9h 9d 9c 9 Ts Th Td Tc 10 Js Jh Jd Jc 11 Qs Qh Qd Qc 12 Ks Kh Kd Kc 13 As Ah Ad Ac
内容的提问来源于stack exchange,提问作者dont minusme
相关产品推荐
相关产品推荐

