【问题标题】:python pandas - Append columns to an empty dataframe with a for looppython pandas - 使用for循环将列附加到空数据框
【发布时间】:2021-03-15 12:59:59
【问题描述】:

我有 2 个数据框,c_rx。我正在尝试append 一个空数据框,使用以下代码:

new_df = pd.DataFrame()

for i in c_r:
    for j in x:
        if c_r[i].dtype != object and x[j].dtype != object:
            if i == j:
                col_c = c_r[i]
                col_j = x[j]
                new_df[i+'-Diff'] = col_c - col_j
        
        else:
            break

但我不断返回一个空数据框。谁能建议我做错了什么?谢谢

【问题讨论】:

  • c_r 是什么?
  • 抱歉,我编辑了我的问题来回答你的问题。两者都是具有通常相同列的数据框
  • 道歉(再次),但是您的预期输出是什么。当我在两个虚构的 df(c_rx 作为两列 df)上运行您的代码时,我得到 new_df 作为他们。这样做:分享两个 df 的几行以及您希望输出的样子。
  • 无需道歉。你能移到这个帖子:stackoverflow.com/questions/65109811/… 吗?我可以删除这个。另一个帖子是同样的问题,但有更多的描述!
  • stackoverflow.com/a/65127506/6361531 我相信你循环是不必要的。

标签: python pandas dataframe for-loop append


【解决方案1】:

您的代码运行良好,但可能没有必要。但是如果你想使用它。我将 dfs 创建为c_r in

EOL - CL Per $;Access - CL Per $;Total Impact - CL Per $
-0.02;-0.39;-0.01
-0.02;-0.39;-0.02
-0.02;-0.39;-0.01
-0.02;-0.39;-0.02

x

EOL - CL Per $;Access - CL Per $;Total Impact - CL Per $
-0.02;-0.39;0.05
-0.02;-0.39;0.03
-0.02;-0.39;0.06
-0.02;-0.39;0.04

然后

c_r = pd.read_csv(r"C:/users/k_sego/c_r.csv", sep=";")
x = pd.read_csv(r"C:/users/k_sego/x.csv", sep=";")

你的代码

new_df = pd.DataFrame()

for i in c_r:
    for j in x:
        if c_r[i].dtype != object and x[j].dtype != object:
            if i == j:
                col_c = c_r[i]
                col_j = x[j]
                new_df[i+'-Diff'] = col_c - col_j
        
        else:
            break

工作正常并提供

   EOL - CL Per $-Diff  Access - CL Per $-Diff  Total Impact - CL Per $-Diff
0                  0.0                     0.0                         -0.06
1                  0.0                     0.0                         -0.05
2                  0.0                     0.0                         -0.07
3                  0.0                     0.0                         -0.06

所以,如果它对你不起作用,它一定与你拥有的文件有关。

【讨论】:

  • 谢谢你的这个顺便说一句。这很奇怪!您是否完全应用了我上面的代码?另外,你能检查一下你有什么版本的熊猫吗?
  • pd.__version__ '1.0.5'。您检查过数据的 dtype 吗?
  • 我的是'0.25.3',我感觉可能会起作用?
  • 哈哈明智的话。我现在就这样做。感谢您的宝贵时间。
  • 谢谢。不幸的是,我遇到了同样的问题。效果不好。它在第一行给出了整个结果,index 0....
猜你喜欢
  • 2018-07-20
  • 2019-07-12
  • 1970-01-01
  • 2019-04-13
  • 2016-10-13
  • 2019-04-11
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多