python - 将列的每个唯一值分配给整个数据框,就好像数据框根据另一列的值复制自己一样
问题描述
我正在尝试从 df2 迭代列的值,并将 df2 中的每个列值分配给 df1。好像 df1 将根据 df2 中的列值相乘。假设我有 df1,如下所示:
df1
1
2
3
和df2如下:
df2
A
B
C
我希望第三个数据框 df3 如下所示:
df3
1 A
2 A
3 A
1 B
2 B
3 B
1 C
2 C
3 C
现在我已经尝试了下面的代码
for i, value in ACS_shock['scenario'].iteritems():
df1['sec'] = df1[i] = value[:]
但是当我从 DF1 生成文件时,我的输出如下所示:
1 A B C
2 A B C
3 A B C
知道如何更正此代码。非常感激。
解决方案
>>> import pandas as pd
>>> import numpy as np
>>> df1 = pd.Series([1,2,3])
>>> df1
0 1
1 2
2 3
dtype: int64
>>> df2 = pd.Series(list('ABC'))
>>> df2
0 A
1 B
2 C
dtype: object
>>> df3 = pd.DataFrame({'df1': pd.concat([df1]*3).reset_index(drop=True),
'df2': np.repeat(df2, 3).reset_index(drop=True)})
>>> df3
df1 df2
0 1 A
1 2 A
2 3 A
3 1 B
4 2 B
5 3 B
6 1 C
7 2 C
8 3 C
推荐阅读
- r - 相同的功能,但在使用 roxygen2 的 R 包中有两个不同的名称?
- javascript - 是否可以在底部没有空间的另一个画布旁边放置一个画布?
- java - 当我对资源使用尝试时,会话已关闭错误
- sailpoint - 如何从 Sailpoint 中清除所有标识?
- python - 如何将 if 条件的结果添加为 pandas 数据框中的列?
- ios - 使用多个视图控制器堆栈处理方向
- php - 如何从选项中获取输入,而我必须将数据输入到同一数据库的两个表中,基于选项数据将被插入
- php - 注意:未定义的偏移量:嵌套数组上的 0
- java - 如何在二维数组上使用比较器对用户输入进行排序
- roku - Roku 中的 roRegistrySection 问题?