Pandas 在读取 CSV 时重命名列
Pandas renaming columns while reading CSV
我在一个文件夹中有多个文本文件,而不是输出以制作 table。我让 table 成功导出到 .csv
文件。问题是我想在每一列中添加一个 header 并且我希望 header 的名称成为文本文件的名称。每个文件都是table中的一列数据。因此,例如,第 1 列来自 textfile.1
。我想在第 1 列中添加 header "textfile.1"
这是我的工作代码:
import os
path = r'C:/path/to/file'
folders = os.listdir(path) #raw string
import pandas as pd
df = pd.DataFrame()
df_interim = pd.DataFrame()
for f in folders:
df_interim = pd.read_csv(
os.path.join(path,f ,),
header=None
)
#concatenate the data into the original dataframe
frames = [df, df_interim]
df = pd.concat(frames, axis=1)
df.to_csv('outputfile',index=False)
修复您的代码,您只需添加名称参数并将其设置为您的文件名:
df_interim = pd.read_csv(os.path.join(path, f),
header=None,
names=[f])
有关 read_csv
参数的更多信息,请参阅 here。
这是一种更简单的方法,可以删除循环和 df_interim
;
df_final = pd.concat([
pd.read_csv(os.path.join(path, f), header=None, names=[f], squeeze=True)
for f in folders
], axis=1
)
我在一个文件夹中有多个文本文件,而不是输出以制作 table。我让 table 成功导出到 .csv
文件。问题是我想在每一列中添加一个 header 并且我希望 header 的名称成为文本文件的名称。每个文件都是table中的一列数据。因此,例如,第 1 列来自 textfile.1
。我想在第 1 列中添加 header "textfile.1"
这是我的工作代码:
import os
path = r'C:/path/to/file'
folders = os.listdir(path) #raw string
import pandas as pd
df = pd.DataFrame()
df_interim = pd.DataFrame()
for f in folders:
df_interim = pd.read_csv(
os.path.join(path,f ,),
header=None
)
#concatenate the data into the original dataframe
frames = [df, df_interim]
df = pd.concat(frames, axis=1)
df.to_csv('outputfile',index=False)
修复您的代码,您只需添加名称参数并将其设置为您的文件名:
df_interim = pd.read_csv(os.path.join(path, f),
header=None,
names=[f])
有关 read_csv
参数的更多信息,请参阅 here。
这是一种更简单的方法,可以删除循环和 df_interim
;
df_final = pd.concat([
pd.read_csv(os.path.join(path, f), header=None, names=[f], squeeze=True)
for f in folders
], axis=1
)