pandas 中 将datafraem 中的多列(列数未知)的数据合并成一列的数据,行数不变
时间: 2024-03-26 18:40:35 浏览: 87
你可以使用 pandas 的 `apply` 方法和字符串拼接函数 `join` 将多列合并成一列。具体操作如下:
假设你有以下的 DataFrame:
``` python
import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
print(df)
# 输出:
# A B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
```
现在你想将所有的列合并成一列:
``` python
new_col = df.apply(lambda row: ','.join([str(x) for x in row]), axis=1)
print(new_col)
# 输出:
# 0 1,4,7
# 1 2,5,8
# 2 3,6,9
# dtype: object
```
然后你可以将新的一列添加到 DataFrame 中,如下所示:
``` python
df['new_col'] = new_col
print(df)
# 输出:
# A B C new_col
# 0 1 4 7 1,4,7
# 1 2 5 8 2,5,8
# 2 3 6 9 3,6,9
```
现在你已经将多列合并成了一列,并添加到了原来的 DataFrame 中,且行数不变。注意,本方法中需要将每个值都转换成字符串格式,这里使用了列表生成式进行处理。
相关问题
pandas 中 将datafraem 中的多列的数据合并成一列的数据,行数不变
你可以使用 pandas 的 `apply` 方法将多列合并成一列。具体操作如下:
假设你有以下的 DataFrame:
``` python
import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
print(df)
# 输出:
# A B C
# 0 1 4 7
# 1 2 5 8
# 2 3 6 9
```
现在你想将列 A、B、C 合并成一列:
``` python
new_col = df.apply(lambda row: ','.join([str(row['A']), str(row['B']), str(row['C'])]), axis=1)
print(new_col)
# 输出:
# 0 1,4,7
# 1 2,5,8
# 2 3,6,9
# dtype: object
```
然后你可以将新的一列添加到 DataFrame 中,如下所示:
``` python
df['new_col'] = new_col
print(df)
# 输出:
# A B C new_col
# 0 1 4 7 1,4,7
# 1 2 5 8 2,5,8
# 2 3 6 9 3,6,9
```
现在你已经将多列合并成了一列,并添加到了原来的 DataFrame 中,且行数不变。
阅读全文