因此,我尝试使用“删除不符合所需条件的行”下面的方法,只在数据框中包含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以外的方法更简单或更有效的话,我愿意使用它们。你知道吗
两个问题
~
,你就是在否定掩码。你知道吗.ix
用于按名称和位置索引。通常你想使用.loc
或.iloc
,除非你有充分的理由不这样做。.ix
实际上是deprecated,因为它很容易导致真正未实现的结果。你知道吗代替你的11号线,试试:
这将返回:
相关问题 更多 >
编程相关推荐