使用dataframe.column在列重命名后指定Nan值

2024-06-02 08:03:04 发布

您现在位置:Python中文网/ 问答频道 /正文

使用一个公共列合并CSV文件,如Vlookup。所有CSV文件都有相同的列标题,但每个CSV都有不同公司的数据。不同公司的每日高点、低点、收盘等数据

所以我尝试使用dataframe.column对其进行重命名,但重命名后,这些列会给出Nan值。若我在CSV文件中手动更改名称,那个么它工作得很好,所以我的代码是正确的,但若我对列进行重命名,则所有列都会显示“Nan”

import pandas as pd
import glob
import os

df = pd.read_csv("GE.csv")

for csv in glob.glob('Output/*.csv'):
    df1 = pd.read_csv(csv)
    ticker = os.path.basename(csv).split(".")[0]
    df1.columns = ['Date', f'{ticker} Open', f'{ticker} High', f'{ticker} Low', f'{ticker} Close', f'{ticker} Adj Close', f'{ticker} Volume']
    df = df.merge(df1, on='Date', how='left')

print(df)
df.to_csv('merged.csv', index=False)

enter image description here


1条回答
网友
1楼 · 发布于 2024-06-02 08:03:04

基本上,我认为你只是在创建新的专栏。要重命名数据帧列,请使用rename

df = df.rename(columns={'old_column_name_to_change':'new_column_name'})

# example
df = df.rename(columns={'Open': f'{ticker} Open', 'Low' : f'{ticker} Low'})

使用这种方法,您可以通过将名称作为字典传递来指定要更改的名称,并且顺序无关紧要

相关问题 更多 >