如何截取行数据的一部分,只在 Python 中保留前 3 位数字


0    546/001441
1    540/001495
2    544/000796
3    544/000797
4    544/000798

我在上面提供的数据框架中有一列。它可以有任意数量的行,这取决于所处理的数据。它是许多列中的一列,但前三个数字与其他列的数据匹配。我需要切断前3个数字之后的所有内容,以便将其附加到基于类似值的另一个数据帧中。关于如何只得到前3个数字并去掉剩下的8个值,有什么想法吗?

到目前为止,我已经将整列单独列为一个系列和一个numpy.array,以便尝试将其转换为str而不是对象。我知道这让我离答案越来越近了,但我似乎不知道如何去掉不必要的值

testcut=dfwhynot[0][:3]

这会把字符串剪切到我需要的地方,但我不知道如何为整个列这样做。

假设列的名称为col,则可以

# Split the column into two
df['col'] = df['col'].apply(lambda row: row.split('/'))
df[['col1', 'col2']] = pd.DataFrame(df_out.values.tolist())

col1    col2
0  546  001441
1  540  001495
2  544  000796
3  544  000797
4  544  000798

然后得到每个CCD_ 2组的最小元素

df.groupby('col1').min().reset_index()

导致

col1    col2
0  540  001495
1  544  000796
2  546  001441