Python 基于pandas的动态数据选择
我有一个动态的情况,我想根据下面的逻辑过滤数据Python 基于pandas的动态数据选择,python,python-3.x,pandas,numpy,Python,Python 3.x,Pandas,Numpy,我有一个动态的情况,我想根据下面的逻辑过滤数据 dynamic_cols = ['A', 'B'. ...] dynamic_values = [1,2,...] data_frame.LOC[data_frame[dynamic_cols == dynamic_values ]] 我曾经用过熊猫,和努比 有什么建议吗 例:在上述情况下,我想过滤A=1和列B=2中的行,使用列表理解创建的所有掩码,或者创建帮助器数据框,并且: 谢谢你的快速回复。这对我有用。但是还有一个问题..pd.Data
dynamic_cols = ['A', 'B'. ...]
dynamic_values = [1,2,...]
data_frame.LOC[data_frame[dynamic_cols == dynamic_values ]]
我曾经用过熊猫,和努比
有什么建议吗
例:在上述情况下,我想过滤A=1和列B=2中的行,使用列表理解创建的所有掩码,或者创建帮助器数据框
,并且:
谢谢你的快速回复。这对我有用。但是还有一个问题..pd.DataFrame([dynamic_values],columns=dynamic_cols)
如果我想更新主df
中的D
列,我该怎么做now@Geek-不确定是否理解,因为我不知道数据的外观,是否可以指定更多?例如,创建数据样本?免费使用并修改我答案中的样本数据。您的数据示例是正确的。它只是基于多个列值,我需要在中更新一个列df@Geek-hmm,那么是更好的第一个解决方案,df.loc[m,'D']=10
Som=np.logical\u和.reduce([df[a]=b表示a,b in(zip(动态列,动态值)))
不可能使用吗?
df = pd.DataFrame({
'A':[1,2,4,1,5,4],
'B':[2,8,9,2,2,3],
'C':[3,3,5,3,1,0],
})
print (df)
A B C
0 1 2 3
1 2 8 3
2 4 9 5
3 1 2 3
4 5 2 1
5 4 3 0
dynamic_cols = ['A','B','C']
dynamic_values = [1, 2, 3]
m = np.logical_and.reduce([df[a] == b for a, b in (zip(dynamic_cols, dynamic_values))])
df1 = df[m]
print (df1)
A B C
0 1 2 3
3 1 2 3
df2 = pd.DataFrame([dynamic_values], columns=dynamic_cols)
df1 = df.merge(df2)
print (df1)
A B C
0 1 2 3
3 1 2 3