熊猫:将两个数据框列合并到一个已排序的列中

丹尼尔·火箭人

假设我有这个数据框:

将熊猫作为pd导入

def creatingDataFrame():

    raw_data = {'Region1': ['A', 'A', 'C', 'B' , 'A', 'B'],
                'Region2': ['B', 'C', 'A', 'A' , 'B', 'A'],
                'var-1': [20, 30, 40 , 50, 10, 20],
                'var-2': [3, 4 , 5, 1, 2, 3]}
    df = pd.DataFrame(raw_data, columns = ['Region1', 'Region2','var-1', 'var-2'])
    return df

我想生成此列:

df['segment']=['A-B','A-C','A-C','A-B','A-B','A-B']

请注意,它使用的是“ Region1”和“ Region2”列,但按排序顺序。我不知道如何使用熊猫来做到这一点。我想到的唯一解决方案是将列表用作中介步骤:

Regions=df[['Region1','Region2']].values.tolist()
segments=[]
for i in range(np.shape(Regions)[0]):
    auxRegions=sorted(Regions[i][:])
    segments.append(auxRegions[0]+'-'+auxRegions[1])
df['segments']=segments

要得到:

>>> df['segments']
0    A-B
1    A-C
2    A-C
3    A-B
4    A-B
5    A-B
哈尔潘

你需要:

df['segments'] = ['-'.join(sorted(tup)) for tup in zip(df['Region1'], df['Region2'])]

输出:

    Region1 Region2  var-1  var-2 segments
0       A       B     20      3      A-B
1       A       C     30      4      A-C
2       C       A     40      5      A-C
3       B       A     50      1      A-B
4       A       B     10      2      A-B
5       B       A     20      3      A-B

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将熊猫数据框中的两列合并到一个列表中

将R中的两个列表合并到一个数据框中

熊猫:将两个不同大小的数据框合并到一列

熊猫基于一个表中的一列合并两个数据帧,该数据框位于另一表中的两列之间

如何将两个线性回归预测模型(每个数据框的子集)合并到数据框的一列中

c#如何通过使用ItemArray将两个数据行和列合并到一个数据表中?

Pandas 将两个系列合并到一个数据帧中

如何将两个数据帧中的两列合并到新数据帧(熊猫)的一列中?

大熊猫合并两个数据框,其中一个包含另一列的值

将两个DataTable列中的值合并到一个新列中

如何将两个二维数据框合并到一个多索引的多维熊猫数据框中?

熊猫:合并(或内部联接)两个数据框,但仅保留其中一个列

R将两行合并为一个数据框中的多列

将两列数据框合并到一个包含所有独特案例的新列中

将两个列绑定到一个数据框中

通过另一个数据框的两列中的值将两个数据框中的一个数据框子集

ValueError:无法处理非唯一的多索引!尝试将多个数据框中的列合并到一个数据框中时

当一个在熊猫中具有multiIndex时合并两个数据框

如何将两个数据框与 R 中的两个匹配列合并

如何将两个选定的列合并到一个表中?

Python Pandas-如何将具有两个不同列的两个数据框合并到两个列表列

将基于每日日期的两个数据框合并到一个数据框中用于面板数据

熊猫:如果条目已更改,则将数据框合并到另一个数据框

SQL将两个查询结果合并到一个数据集中

合并两个数据框并根据公共列选择第一个条目

Python:列命名并将两个数据框合并为一个

熊猫通过比较两个数据框创建一个新列

将具有两个日期列的一个数据框与具有两个日期列的另一个数据框合并

通过插入两个原始数据帧中的每一个的列,将两个数据帧合并为一个