python - 如何比较第一列和第二列

标签 python pandas

我的功课遇到问题。我的目标是比较第一列第一行和第二列第二行。

我是 Pandas 新手,所以我尝试在互联网上浏览答案,但遗憾的是没有。我想到了一种方法,即将 pandas 转换为数组,并将第一列存储到第一个数组,第二列存储到第二个数组。

first_array = [4,10,17,24,82,93,35,40,49,71,78]
last_array = [9,16,23,29,89,97,39,48,57,77,85]

之后我弹出了first_array的第一个数字,即4,然后在最后一个数字中插入一个0,如下所示

first_array = [10,17,24,82,93,35,40,49,71,78, 0]
last_array =  [ 9,16,23,29,89,97,39,48,57,77,85]

还有一点 for 循环

if first_array < last_array:
   print ("===")

但看来我的逻辑是正确的,但我期望的输出有一点错误

['10', '17', '24', '82', '93', '35', '40', '49', '71', '78', '0']
['9', '16', '23', '29', '89', '97', '39', '48', '57', '77', '85']
===
['17', '24', '82', '93', '35', '40', '49', '71', '78', '0']
['16', '23', '29', '89', '97', '39', '48', '57', '77', '85']
['24', '82', '93', '35', '40', '49', '71', '78', '0']
['23', '29', '89', '97', '39', '48', '57', '77', '85']
['82', '93', '35', '40', '49', '71', '78', '0']
['29', '89', '97', '39', '48', '57', '77', '85']
['93', '35', '40', '49', '71', '78', '0']
['89', '97', '39', '48', '57', '77', '85']
['35', '40', '49', '71', '78', '0']
['97', '39', '48', '57', '77', '85']
===
['40', '49', '71', '78', '0']
['39', '48', '57', '77', '85']
['49', '71', '78', '0']
['48', '57', '77', '85']
['71', '78', '0']
['57', '77', '85']
['78', '0']
['77', '85']
['0']
['85']
===

第一个“=== 10 不是 < 9”,这让我思考。我错过了什么?预先感谢您。

这是我的代码片段。 print(join_tag) 是我需要的输出。

normalized_text = []
first_array = [10,17,24,82,93,35,40,49,71,78, 0]
last_array =  [ 9,16,23,29,89,97,39,48,57,77,85]
for word in normalized_text:
    join_tag = ' '.join(word)
    print (join_tag)
    if first_array < last_array:
        print ('===')
        first_array.pop(0)
        last_array.pop(0)

预期输出为

['10', '17', '24', '82', '93', '35', '40', '49', '71', '78', '0']
['9', '16', '23', '29', '89', '97', '39', '48', '57', '77', '85']
['17', '24', '82', '93', '35', '40', '49', '71', '78', '0']
['16', '23', '29', '89', '97', '39', '48', '57', '77', '85']
['24', '82', '93', '35', '40', '49', '71', '78', '0']
['23', '29', '89', '97', '39', '48', '57', '77', '85']
['82', '93', '35', '40', '49', '71', '78', '0']
['29', '89', '97', '39', '48', '57', '77', '85']
['93', '35', '40', '49', '71', '78', '0']
['89', '97', '39', '48', '57', '77', '85']
['35', '40', '49', '71', '78', '0']
['97', '39', '48', '57', '77', '85']
===
['40', '49', '71', '78', '0']
['39', '48', '57', '77', '85']
['49', '71', '78', '0']
['48', '57', '77', '85']
['71', '78', '0']
['57', '77', '85']
['78', '0']
['77', '85']
['0']
['85']
===

最佳答案

如果我没理解你的问题,你想比较 4 和 16,对吗?

如果是这样,将数据放回到数据框中:

import numpy as np
import pandas as pd

first_array = np.array([4,10,17,24,82,93,35,40,49,71,78])
last_array = np.array([9,16,23,29,89,97,39,48,57,77,85])
df = pd.DataFrame(np.vstack((first_array, last_array)))

然后:

df.iloc[0, 0] < df.iloc[1, 1]

将比较 4 < 16

比较它们:

for i in range(len(df.columns)-1):
    print(df.iloc[0, i] < df.iloc[1, i+1])

关于python - 如何比较第一列和第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660736/

相关文章:

python - 为什么 pandas df.plot.bar() 不接受宽度数组?

python - GDAL ReadAsArray 不忽略 NoData 值

python - scikit-learn 对不平衡数据进行欠采样以进行交叉验证

Python - 将元组应用于功能工具 z.pipe 中的函数

python - 连接单列多个不同形状的文件

python - Pandas 性能问题 - 需要帮助来优化

python - 使用 matplotlib/python 设置绘图轴限制时出现问题

python - 如果我使用 psycopg2,如何返回字典或 json?

追加数据帧时出现 Pandas 错误 : invalid dtype determination in get_concat_dtype

python - 使用 Pandas 检查 Dataframe 中每行发生的最后更改