Python I';我试图使用if语句基于不同的数据帧创建一个新的数据帧
我想知道如何在数据帧的行上应用if语句。所有列都由以下字符串组成:Python I';我试图使用if语句基于不同的数据帧创建一个新的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我想知道如何在数据帧的行上应用if语句。所有列都由以下字符串组成: d = {'emp' : {'Breakdown' : '11/12/2019', 'expl' : '123'}, 'emp2': {'Breakdown' : '11/03/2020', 'expl' : '123'}, 'emp3' : {'Breakdown' : '31/12/2019', 'expl' : '123'}, 'emp4' : {'Breakdown' : '31/12/2020', 'expl' :
d = {'emp' : {'Breakdown' : '11/12/2019', 'expl' : '123'}, 'emp2': {'Breakdown' : '11/03/2020', 'expl' : '123'}, 'emp3' : {'Breakdown' : '31/12/2019', 'expl' : '123'}, 'emp4' : {'Breakdown' : '31/12/2020', 'expl' : '123'}}
d1 = pd.DataFrame(d)
所以我把它做成了一个数据帧d,我想尝试从包含“2020”的字符串中创建一个新的数据帧。
我试过这个:
df = {}
for t in d:
df = d1[t]
if '2020' in df.get('Breakdown'):
...
我还尝试了df.loc[:'Breakdown']
。这给了我两个值11/03/2020
和31/12/2020
。所以从这里我真的不知道该怎么办。我希望它看起来像这样:
new_d = {'emp2' : {'Breakdown' : '11/03/2020', 'expl' : '123'}, 'emp4' : {'Breakdown' : '31/12/2020', 'expl' : '123'}}
new_df = pd.DataFrame(new_d)
也许这比我的编程水平高了一点,但我喜欢用数据帧做实验。我还在玩弄代码,所以如果我想出一个解决方案,我显然会在这里编辑它
提前感谢。使用,创建布尔掩码,然后使用此掩码过滤相应的列:
df = d1.loc[:, d1.loc['Breakdown'].str.contains('2020')]
结果:
# print(df)
emp2 emp4
Breakdown 11/03/2020 31/12/2020
expl 123 123
使用,创建布尔掩码,然后使用此掩码过滤相应的列:
df = d1.loc[:, d1.loc['Breakdown'].str.contains('2020')]
结果:
# print(df)
emp2 emp4
Breakdown 11/03/2020 31/12/2020
expl 123 123
非常感谢Shubham Sharma。事实上,这对我很有用。非常感谢Shubham Sharma。事实上,它确实对我有用。