python - 循环遍历一个数据框中的单个列与另一个数据框中的列进行比较使用 Pandas 在第一个数据框中创建新列

标签 python pandas loops dataframe

现在我有两个数据框,它们看起来像:

c = pd.DataFrame({'my_goal':[3, 4, 5, 6, 7],
                 'low_number': [0,100,1000,2000,3000],
                 'high_number': [100,1000,2000,3000,4000]})

a= pd.DataFrame({'a':['a', 'b', 'c', 'd', 'e'],
                'Number':[50, 500, 1030, 2005 , 3575]})

我想做的是,如果“Number”介于低数和高数之间,我希望它恢复“my_goal”中的值。例如,如果我们查看“a”,它的“数字是 100,所以我希望它返回 3”。我还想创建一个数据框,其中包含数据框 a 中的所有列和数据框 c 中的“my_goal”列。我希望输出看起来像:

enter image description here

我试着将我的最高和最低数字放入一个单独的列表中,并从中运行一个 for 循环,但给我的只是“我的目标”数字:

low_number= 'low_number': [0,100,1000,2000,3000]
for i in a:
    if float(i) >= low_number:
        a = c['my_goal']

print(a)

最佳答案

你可以使用pd.cut,当我看到范围时,我首先想到的是pd.cut:

dfa = pd.DataFrame(a)
dfc = pd.DataFrame(c)

dfa['my_goal'] = pd.cut(dfa['Number'],
                        bins=[0]+dfc['high_number'].tolist(),
                        labels=dfc['my_goal'])

输出:

   a  Number my_goal
0  a      50       3
1  b     500       4
2  c    1030       5
3  d    2005       6
4  e    3575       7

关于python - 循环遍历一个数据框中的单个列与另一个数据框中的列进行比较使用 Pandas 在第一个数据框中创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53728747/

相关文章:

python - Seaborn - 从 DataFrame 直方图中删除间距

ios - 从任意位置播放声音

c - 获取我的输入并在 while 循环中比较它,fgets?

python - 简单的python程序,对我来说不容易

python - 创建自定义连续分布时使用 scipy rv_continuous 的方法

python - 优化 pandas 数据帧应用于解码 CAN 帧 - 迭代行

Java 在字符串中搜索子字符串除非前面有特定字符

algorithm - 总结列表和列表列表的 Pythonic 方式

python - 在Python中返回反向列表

python - pandas 数据框中条件过滤的通用函数