【发布时间】:2019-02-11 20:03:10
【问题描述】:
请帮助我了解如何更改字典中的数据框。
让我们考虑最简单的情况,创建两个数据帧并从中构造字典。
dates = pd.date_range('20130101',periods=6)
df1 =pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
df2 =pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
DICTOR={}
DICTOR['d1']=df1
DICTOR['d2']=df2
m=DICTOR
现在我想从 dict m 内的 DataFrames 中排除行,例如 B 列中的值为零或负数的行。
我尝试了以下代码:
for name,df in m.items():
for index, row in df.iterrows():
if df.at[index,'B']<0:
df.drop(index,axis=0)
或:
for name,df in m.items():
df=df[df.B>0]
但它不起作用。
我猜我的问题是由于可变/不可变对象,但我不确定。
【问题讨论】:
标签: python pandas dictionary for-loop