Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据某些条件连接列中的两个单元格?_Python_Pandas_Data Science_Data Analysis - Fatal编程技术网

Python 如何根据某些条件连接列中的两个单元格?

Python 如何根据某些条件连接列中的两个单元格?,python,pandas,data-science,data-analysis,Python,Pandas,Data Science,Data Analysis,你好,我有这个熊猫数据框: Key Predictions C10D1 1 C11D1 8 C11D2 2 C12D1 2 C12D2 8 C13D1 3 C13D2 9 C14D1 4 C14D2 9 C15D1 8 C15D2 3 C1D1 5 C2D1 7 C3D1 4 C4D1 1 C4D2 9 C5D1 3 C5D2 2 C6D1 1 C6D2 0 C7D1 8

你好,我有这个熊猫数据框:


Key      Predictions    
C10D1   1
C11D1   8
C11D2   2
C12D1   2
C12D2   8
C13D1   3
C13D2   9
C14D1   4
C14D2   9
C15D1   8
C15D2   3
C1D1    5
C2D1    7
C3D1    4
C4D1    1
C4D2    9
C5D1    3
C5D2    2
C6D1    1
C6D2    0
C7D1    8
C7D2    6
C8D1    3
C8D2    3
C9D1    5
C9D2    1
我想连接“预测”列中的每个单元格,其中“键”最多匹配4个字符。 例如在“键”列中,我有“C11D1”和“C11D2”。。因为它们都包含“C11”,所以我想将“C11D1”和“C11D2”作为索引的预测列中的行关联起来。。 因此,结果应该是:

       Predictions
Key 
C10     1
C11     82
C12     28
and so on
编辑:因为OP希望连接相同索引的值,所以在此处添加该解决方案

df.groupby(df['Key'].replace(regex=True,to_replace=r'(C[0-9]+).*',value=r'\1'))\
['Predictions'].apply(lambda x: ','.join(map(str,x)))
上面将用
连接它们。您可以根据需要在
lambda x:',
部分将其设置为null或空格



你能试试下面的吗

df.groupby(df['Key'].replace(regex=True,to_replace=r'(C[0-9]+).*',value=r'\1')).sum()
或使用重置索引尝试:

df.groupby(df['Key'].replace(regex=True,to_replace=r'(C[0-9]+).*',value=r'\1')).sum()\
.reset_index()
解释:为上述代码添加解释

df.groupby(df['Key'].replace(regex=True,to_replace=r'(C[0-9]+).*',value=r'\1')).sum()

df.groupby: Means use groupby for df whatever values passed to it.
df['Key'].replace(regex=True,to_replace=r'(C[0-9]+).*',value=r'\1'): Means df's key column I am using regex to replace everything after Cdigits with NULL as per OP's question.

.sum(): Means to get total sum of all similar 1st column as per need.

兄弟谢谢你我明白了。。有一个问题,我想对行进行一次分类,而不是添加它们。。看看我是否有“1”和“2”,结果应该是“12”而不是“3”@SabbirTalukdar,现在试试我的编辑代码,让我知道吗?