【问题标题】:Add (insert) new columns to an existing file with different shape Pandas向具有不同形状 Pandas 的现有文件添加(插入)新列
【发布时间】:2023-04-02 01:11:01
【问题描述】:

我有 5 个文件数据框,每个文件在熊猫上都包含不同的形状。

  1. 第一个文件包含 3968 行 x 7 列(日期、打开、高、低、关闭、调整关闭、音量)
  2. 第二个文件包含 3774 行 x 7 列(Date1、Open1、High1、Low1、Close1、Adj Close1、Volume1)
  3. 第三个文件包含 58 行 x 3 列(No、Date、Rate)
  4. 第 4 个文件包含 192 行 x 3 列(No1、Date1、Rates1)
  5. 第 5 个文件包含 1850 行 x 3 列(No2、Date2、Rate2)

我的输出将:

3968 行 x 16 列

(日期、开盘价、最高价、最低价、收盘价、调整收盘价、成交量、开盘价 1、最高价 1、最低价 1、收盘价 1、调整收盘价 1、成交量 1、汇率、汇率 1、汇率 2)

如何在第 2-5 个文件的第 1 个文件中添加/插入不同形状的新列? 有什么技巧可以匹配不同的形状吗?

我把我的代码:

df = pd.read_csv('^JKLQ45.csv') # 1st file
files = [file for file in os.listdir('./Raw Data')] #i put all the files
all_data = pd.DataFrame()

for file in files:
    current_data = pd.read_csv('./Raw Data'+"/"+file)
    all_data = pd.concat([all_data, current_data])
    
all_data.to_csv("all_data_copy.csv", index=False)

输出为 9842 行 × 14 列,但我希望形状为 3968 行 × 16 列

【问题讨论】:

  • 编辑了我的答案,请检查

标签: pandas dataframe


【解决方案1】:

你能在循环中添加这段代码吗?

pd.concat([df1.reset_index(drop=True),df2.reset_index(drop=True)],axis=1)

【讨论】:

  • 如何减少 NaN 值?
  • 你想用什么替换 NaN?
  • 我想用平均值或中值替换 NaN,我试过但仍然得到 NaN 值:all_data_fillna = all_data.fillna(all_data.mean(), inplace=True) all_data.fillna
  • 你能发布一个示例数据框吗?
猜你喜欢
  • 2021-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 2020-02-06
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多