我有一个 Dataframe ,看起来像这样:
| Col A| B栏|键|值|
| --|--|--|--|
| 数据|数据|[key1,key2,key3]|[value1a,value2a,value3a]|
| 数据|数据|[key1,key2,key3]|[value1b,value2b,value3b]|
“keys”在每一行中是相同的。“values”在每一行中是不同的。“keys”和“values”都是Numpy数组类型。
我的目标是使用键作为列名,然后将值分配给该列中的单元格,如下所示:
| Col A| B栏|key1| Key2| key3|
| --|--|--|--|--|
| 数据|数据|value1a| value2a| value3a|
| 数据|数据|价值1b| value2b| value3b|
| 数据|数据|价值1c| value2c| value3c|
| 数据|数据|value1d| value2d| value3d|
我查看了this post,但它似乎只是使用类似的逻辑创建了一个新的 Dataframe 。
下面是一些创建 Dataframe 的代码:
source_df = pd.DataFrame(
[
['data', 'data', np.array(['key1', 'key2']), np.array(['value1a', 'value2a'])],
['data', 'data', np.array(['key1', 'key2']), np.array(['value1b', 'value2b'])]
],
columns=['col 1', 'col 2', 'keys', 'values']
)
goal_df = pd.DataFrame(
[
['data', 'data', 'value1a', 'value2a'],
['data', 'data', 'value1b', 'value2b'],
],
columns=['col 1', 'col 2', 'key1', 'key2']
)
字符串
3条答案
按热度按时间nhjlsmyf1#
如果所有行中的键都相同,则可以使用
DataFrame
构造函数和to_list
转换为DataFrame,然后使用join
转换为原始数据集:字符串
替代修改
df
的位置:型
输出量:
型
不相同的密钥
如果所有行中的键都不相同,则可以使用用途:
型
范例:
型
2hh7jdfx2#
我修改了mozway的代码,引入了函数和文档来演示列转换。
字符串
输出
型
rnmwe5a23#
我的解决方案使用df.explode()和df.assign()来完成任务。
字符串
输出
型