Pandas?中的计算/React列

wsewodh2  于 2022-11-20  发布在  React
关注(0)|答案(2)|浏览(165)

我想在Pandas中模拟一个 *Excel公式 *,我已经尝试过了:

df = pd.DataFrame({'a': [3, 2, 1, 0], 'b': [5, 3, 2, 1]})
df['c'] = lambda x : df.a + df.b + 1 # Displays <function <lambda> ..> instead of the result
df['d'] = df.a + df.b + 1 # Static computation
df.a *= 2
df # Result of column c and d not updated :(
   a  b                                      c  d
0  6  5  <function <lambda> at 0x7f2354ddcca0>  9
1  4  3  <function <lambda> at 0x7f2354ddcca0>  6
2  2  2  <function <lambda> at 0x7f2354ddcca0>  4
3  0  1  <function <lambda> at 0x7f2354ddcca0>  2

我所期望的是:

df
   a  b  c
0  6  5  12
1  4  3  8
2  2  2  5
3  0  1  2
df.a /= 2
   a  b  c
0  3  5  9
1  2  3  6
2  1  2  4
3  0  1  2

在Pandas中是否可以动态计算列?

dxxyhpgq

dxxyhpgq1#

也许这段代码可以为您提供一个正确的方向:

import pandas as pd
c_list =[]
df = pd.DataFrame({'a': [3, 2, 1, 0], 'b': [5, 3, 2, 1]})
c_list2 = list(map(lambda x: x + df.b + 1 , list(df.a)))

for i in range (0,4):
    c_list.append(pd.DataFrame(c_list2[i])["b"][i])

df['c'] = c_list
df['d'] = df.a + df.b # Static computation
df.a *= 2
df
fruv7luv

fruv7luv2#

DataFrame中的 * column * 之间的React性似乎不太现实。我的cellopype包确实在 * DataFrame * 之间给予了类似Excel的React性。下面是我对您的问题的看法:
第一个
另请参阅我对this question的回应。

相关问题