我有一个从 excel/csv 中提取的数据框。
我将包含名称的两列重命名为列 Name1 和 Name2
我希望使用列 Name1 和 Name2 中的名称创建一个新列
姓名1 | 姓名2 |
---|---|
约翰 | 乔 |
凯莉 | 盖伊 |
我使用连接到一个新变量中。当我打印该变量时,我确实得到了完整的串联列表。
但是当我将其导出到 csv 或 excel 并打开它时,我留下了我创建的新列(很棒),但它完全是空白的。为什么?
导出的 excel/csv 应如下所示:
姓名1 | 姓名2 | 新 |
---|---|---|
约翰 | 乔 | 约翰 |
凯莉 | 盖伊 | 凯莉 |
乔 | ||
盖伊 |
这是我的代码:
import os
import pandas as pd
df = pd.read_excel('Arraytomodify.xlsx', index_col=0)
df.rename(columns={"Nome / Name": "Name1"}, inplace=True)
df.rename(columns={"Nome / Name.1": "Name2"}, inplace=True)
df.rename(columns={"Cognome / Nachname": "Lastname1"}, inplace=True)
df.rename(columns={"Cognome / Nachname.1": "Lastname2"}, inplace=True)
# Append the data from 'Name1' column to Name2 and give data to combined variable
combined = pd.concat([df['Name1'], df['Name2']]).reset_index(drop=True)
print(combined)
#create 'new' column and dump combined variable into column
df['new'] = combined
df.to_excel('modificato2.xlsx')
您需要将
Series
转换为数据框,然后 concat
它们:
df = pd.DataFrame({
"Name1": ["John", "Kelly"],
"Name2": ["Joe", "Guy"],
})
out = pd.concat([df, pd.concat([df['Name1'], df['Name2']]).reset_index(drop=True).to_frame()], axis=1)
输出:
Name1 Name2 0
0 John Joe John
1 Kelly Guy Kelly
2 NaN NaN Joe
3 NaN NaN Guy