相关疑难解决方法(0)

如何为Pandas数据帧实现'in'和'not in'

我怎样才能实现SQL的的等价物INNOT IN

我有一个包含所需值的列表.这是场景:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']

# pseudo-code:
df[df['countries'] not in countries]
Run Code Online (Sandbox Code Playgroud)

我目前的做法如下:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})

# IN
df.merge(countries,how='inner',on='countries')

# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]
Run Code Online (Sandbox Code Playgroud)

但这似乎是一个可怕的kludge.任何人都可以改进吗?

python sql-function dataframe pandas

353
推荐指数
9
解决办法
34万
查看次数

从另一个列表中删除一个列表中出现的所有元素

假设我有两个列表,l1并且l2.我想执行l1 - l2,返回所有l1不在的元素l2.

我可以想到一个简单的循环方法来做到这一点,但这将是非常低效的.什么是pythonic和有效的方法呢?

举个例子,如果我有l1 = [1,2,6,8] and l2 = [2,3,5,8],l1 - l2应该回来[1,6]

python list

315
推荐指数
9
解决办法
22万
查看次数

Pandas有条件地创建一个系列/数据帧列

我有一个沿着下面的数据框:

    Type       Set
1    A          Z
2    B          Z           
3    B          X
4    C          Y
Run Code Online (Sandbox Code Playgroud)

我想在数据帧中添加另一列(或生成一系列)与数据帧相同的长度(=相等的记录/行数),如果Set ='Z'则设置颜色为绿色,如果Set =否则设置为'red' .

最好的方法是什么?

python numpy dataframe pandas

260
推荐指数
7
解决办法
33万
查看次数

pandas获取不在其他数据帧中的行

我有两个pandas数据框,它们有一些共同的行.

假设dataframe2是dataframe1的子集.

如何获取不在dataframe2中的dataframe1行?

df1 = pandas.DataFrame(data = {'col1' : [1, 2, 3, 4, 5], 'col2' : [10, 11, 12, 13, 14]}) 
df2 = pandas.DataFrame(data = {'col1' : [1, 2, 3], 'col2' : [10, 11, 12]})
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

180
推荐指数
9
解决办法
15万
查看次数

Python在一个列表中查找不在另一个列表中的元素

我需要比较两个列表,以便创建一个列表中找到的特定元素的新列表,但不能在另一个列表中找到.例如:

main_list=[]
list_1=["a", "b", "c", "d", "e"]
list_2=["a", "f", "c", "m"] 
Run Code Online (Sandbox Code Playgroud)

我想循环遍历list_1并向list_list追加list_2中找不到的所有元素.

结果应该是:

main_list=["f", "m"]
Run Code Online (Sandbox Code Playgroud)

我怎么能用python做到这一点?

python list

89
推荐指数
6
解决办法
9万
查看次数

按不在列表中的标签切片Pandas数据帧

我有一个pandas数据帧,df.

我想选择在所有指数df不是在列表中,blacklist.

现在,我使用list comprehension创建所需的标签以进行切片.

ix=[i for i in df.index if i not in blacklist]  
df_select=df.loc[ix]
Run Code Online (Sandbox Code Playgroud)

工作正常,但如果我需要经常这样做可能会很笨拙.

有一个更好的方法吗?

python pandas

35
推荐指数
3
解决办法
3万
查看次数

如何替换不在列表中的Pandas Dataframe中的所有值?

我有一个值列表.如何替换不在给定值列表中的Dataframe列中的所有值?

例如,

>>> df = pd.DataFrame(['D','ND','D','garbage'], columns=['S'])
>>> df
      S
0    D
1    ND
2    D
3  garbage

>>> allowed_vals = ['D','ND']
Run Code Online (Sandbox Code Playgroud)

我想用"无"替换数据框的列S中不在列表allowed_vals中的所有值.我怎样才能做到这一点?

python pandas

7
推荐指数
1
解决办法
4447
查看次数

标签 统计

python ×7

pandas ×5

dataframe ×3

list ×2

numpy ×1

sql-function ×1