gpt4 book ai didi

python - Pandas ix 方法返回空白数据框而不是所需结果

转载 作者:太空宇宙 更新时间:2023-11-04 02:34:17 25 4
gpt4 key购买 nike

因此,我尝试使用此处“删除不符合所需条件的行”下的方法,仅在我的数据框中包含 B 列值小于 C 列值的行:https://www.quora.com/How-should-I-delete-rows-from-a-DataFrame-in-Python-Pandas

它不工作,只是返回一个空白数据框

所以基本上它应该是这样的:

import pandas as pd
import numpy as np

import1 = pd.read_csv('./a_csv.csv')
import2 = pd.read_csv('./another_csv.csv')

df1 = import1[['A', 'B']]
df2 = import2[['A1', 'C']]

In[10]: df = pd.merge(df1, df2, left_on='A', right_on='A1').drop('A1', axis=1)
Out[10]:
A B C
a 01 2 2
b 02 5 6
c 03 8 8
d 04 1 5

In[11]: df = df.ix[~(df['B'] < df['C'])]
Out[11]:
A B C
a 02 5 6
b 04 1 5

但是第 11 行没有产生预期的结果。我究竟做错了什么?如果它们更容易或更有效,我愿意使用 ix 以外的方法。

最佳答案

两个问题

  1. 通过使用 ~,您正在否定掩码。
  2. .ix 用于按名称和位置进行索引。通常您希望使用 .loc.iloc 除非您有充分的理由不这样做。 .ix 实际上是deprecated因为它很容易导致真正意想不到的结果。

尝试代替第 11 行:

df.loc[df['B'] < df['C']]

返回:

   A  B  C
b 2 5 6
d 4 1 5

关于python - Pandas ix 方法返回空白数据框而不是所需结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48312684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com