python-3.x - 如何使用 Python Pandas 根据行将一列数据更改为多列?
问题描述
我不知道我是否正确地提出了问题。例如,我想
1
0
1
0
1
0
1
0
变成
1 0 1
0 1 0
1 0 x
第一个列表不应更改..并将类型更改为 DataFrame..
我尝试使用 numpy.array,将数组展平。并使用 reshape(-1,3).T 重塑为列 .. 但由于它有一些缺失值.. 我无法正确重塑数组..
解决方案
一种可能的解决方案是在调整大小之前将缺失值添加到数组中。
初始点:
import numpy as np
import pandas as pd
# I assume you flattened the array.
data = np.array([1, 0, 1, 0, 1, 0, 1, 0, ])
根据所需的形状和填充值添加新数据:
new_shape = (3, 3)
fill_value = np.NaN
missing_length = np.product(new_shape) - data.size
missing_array = np.full(missing_length, fill_value)
data = np.hstack([data, missing_array])
然后应用重塑并将其转换为数据框:
data = data.reshape(new_shape)
df = pd.DataFrame(data)
print(df)
输出:
0 1 2
0 1.0 0.0 1.0
1 0.0 1.0 0.0
2 1.0 0.0 NaN
推荐阅读
- skia - 如何编译skia中包含的HelloWorld应用程序?
- javascript - 从单元格获取值(多个电子邮件地址)时出错
- scala - 以 Map 作为输入的 Spark UDF
- jhipster - JHipster 从 6.1.2 升级到 6.2.0 的问题
- jquery - 无法在 ajax 调用中更改 a.text()
- c# - Firebase 保存数据的速度会随着时间的推移而变慢
- python - 我需要高效的 Django ORM 代码来减少查询命中
- php - 当网站在线上传时,PHP 时区会变得混乱
- highcharts - 显示全屏后渐变色消失
- python - 获取“UnboundLocalError:分配前引用的局部变量'连接'”