pandas 根据一列生成两列
时间: 2023-07-12 16:34:35 浏览: 102
可以使用 `pandas` 的 `str.split()` 方法,将一列文本数据按照指定的分隔符分割成多个部分,并将其转换为 `DataFrame` 对象。例如,假设我们有一个包含姓名和性别的数据表,姓名和性别之间用逗号分隔,我们想要将其分成两列姓名和性别,可以使用以下代码:
```python
import pandas as pd
# 创建包含姓名和性别的数据表
df = pd.DataFrame({'name_gender': ['Tom,Male', 'Jerry,Female']})
# 使用 str.split() 方法将 name_gender 分割成两列
df[['name', 'gender']] = df['name_gender'].str.split(',', expand=True)
# 打印结果
print(df)
```
输出结果为:
```
name_gender name gender
0 Tom,Male Tom Male
1 Jerry,Female Jerry Female
```
在这个例子中,我们使用 `str.split()` 方法将 `name_gender` 列按照逗号分割成两个部分,并使用 `expand=True` 参数将其转换为 `DataFrame` 对象,然后将生成的两列数据分别赋值给 `name` 和 `gender` 列。
相关问题
pandas apply 根据一列生成两列
可以使用 `pandas` 的 `apply()` 方法,对一列数据进行逐行处理,并根据处理结果生成新的列。例如,假设我们有一个包含姓名和性别的数据表,姓名和性别之间用逗号分隔,我们想要将其分成两列姓名和性别,并将性别转换为大写字母,可以使用以下代码:
```python
import pandas as pd
# 创建包含姓名和性别的数据表
df = pd.DataFrame({'name_gender': ['Tom,Male', 'Jerry,Female']})
# 定义函数,对每行数据进行处理
def split_and_uppercase(row):
name, gender = row['name_gender'].split(',')
return pd.Series({'name': name, 'gender': gender.upper()})
# 使用 apply() 方法对每行数据进行处理,并生成两列数据
df[['name', 'gender']] = df.apply(split_and_uppercase, axis=1)
# 打印结果
print(df)
```
输出结果为:
```
name_gender name gender
0 Tom,Male Tom MALE
1 Jerry,Female Jerry FEMALE
```
在这个例子中,我们定义了一个函数 `split_and_uppercase()`,对每行数据进行处理,并返回一个包含两个元素的 `Series` 对象,分别代表分隔后的姓名和转换后的性别。然后,我们使用 `apply()` 方法对每行数据调用这个函数,并将生成的两列数据分别赋值给 `name` 和 `gender` 列。
python读取两个文件夹下所有文件名,一个文件夹做为一列,并生成两列的csv表
在Python中,你可以使用`os`模块来遍历文件夹,然后结合`pandas`库来处理数据并生成CSV文件。这里是一个基本的步骤:
```python
import os
import pandas as pd
# 定义两个文件夹路径
folder1 = 'path_to_folder1'
folder2 = 'path_to_folder2'
# 创建空列表来存储文件名
files1 = []
files2 = []
# 遍历第一个文件夹下的所有文件
for filename in os.listdir(folder1):
files1.append(filename)
# 遍历第二个文件夹下的所有文件
for filename in os.listdir(folder2):
files2.append(filename)
# 将文件名列表转换为DataFrame,假设每一列代表一个文件夹的内容
data = {'Folder 1': files1, 'Folder 2': files2}
# 使用pandas创建DataFrame
df = pd.DataFrame(data)
# 写入CSV文件
output_file = 'file_names.csv'
df.to_csv(output_file, index=False)
阅读全文