dataframe共有五列,如何将其拆分为不同行,及第1,2,3列为一行,第1,4,5列为一行并合并第一列中相同的元素
时间: 2024-01-09 19:04:08 浏览: 109
python中dataframe将一列中的数值拆分成多个列
5星 · 资源好评率100%
您可以使用 pandas 的 groupby 和 apply 方法来实现该操作。
假设您的 DataFrame 名称为 df,您可以按照第一列的元素进行分组,然后将每个组的第 1、2、3 列合并为一个字符串,第 1、4、5 列合并为一个字符串,最后将两个字符串合并为一行,代码如下:
```
import pandas as pd
# 按照第一列元素进行分组,然后将每个组的第1、2、3列合并为一个字符串,第1、4、5列合并为一个字符串,最后将两个字符串合并为一行
result_df = df.groupby(df.iloc[:, 0]).apply(lambda x: pd.Series({
'col1_2_3': ' '.join(x.iloc[:, :3].astype(str).values.tolist()[0]),
'col1_4_5': ' '.join(x.iloc[:, [0, 3, 4]].astype(str).values.tolist()[0])
})).reset_index()
# 将 col1_2_3 和 col1_4_5 合并为一列
result_df['result'] = result_df['col1_2_3'] + ' ' + result_df['col1_4_5']
# 删除 col1_2_3 和 col1_4_5 列
result_df = result_df.drop(['col1_2_3', 'col1_4_5'], axis=1)
# 输出结果
print(result_df)
```
其中,`df.iloc[:, 0]` 表示选取第一列的所有元素进行分组,`x.iloc[:, :3]` 表示选取每个组的第 1、2、3 列,`x.iloc[:, [0, 3, 4]]` 表示选取每个组的第 1、4、5 列。最后将两个字符串合并为一行,并将结果保存在 `result_df` 中。
阅读全文