【发布时间】:2019-07-08 14:01:06
【问题描述】:
我有许多 CSV 文件,我想重命名每个文件的每一列。例如,一个 CSV 文件有一个名为“wind”的列,我想将其自动转换为:wind_Dar。 (Dar 是一个文件的名称)所以换句话说我希望每个文件的每一列都有标签“列名”_“当前文件名”
这是我的代码:
path = ".../As-Pre-"
path_previsions = ["Dar.csv","Ope.csv","Wea.csv", "Wun.csv"]
path_observations = ".../As-Ob.csv"
def get_forecast(path, path_pre, path_ob):
list_data = []
for forecaster in path_pre:
dataframe = pd.read_csv(path + forecaster, sep=";").dropna(subset=["temperature"])
dataframe["time"] = dataframe["time"].apply(lambda x: str(x).split(":")[0])
dataframe = dataframe.groupby(['time']).mean()
dataframe = dataframe.rename(index=str, columns={"humidity": "humidity_Y", "precipitation": "precipitation_Y",
"temperature":"temperature_Y"})
list_data.append(dataframe)
【问题讨论】:
-
如果您不提供 csv 文件数据的最小示例,我认为没有人可以为您提供如何实现此目标的实际代码。无论哪种方式,想法是您应该存储文件的名称,我猜是
forecaster,然后在更改数据框列名称时,只需分配新名称。 -
你不能在重命名调用中添加类似 "wind": "wind_{}".format(forecaster.split(.)[0]) 的内容
-
假设每次迭代的 path_pre 是 'Dar.csv' 等等...你可以这样做:
suffix = forecaster.split('.')[0]然后dataframe.columns = [el + suffix for el in dataframe.columns]替换你重命名列的行。
标签: python dataframe filenames automatic-properties