Python 从多数据帧中的选定行创建新数据帧

Python 从多数据帧中的选定行创建新数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有三个数据帧。我想按日期从所有3个数据帧中选择行2020-10-26,然后我想创建一个新的数据帧。怎么做 import pandas as pd from datetime import date date1 = date.fromisoformat('2020-10-25') date2 = date.fromisoformat('2020-10-26') date3 = date.fromisoformat('2020-10-27') for x in range(3): df

我有三个数据帧。我想按日期从所有3个数据帧中选择行
2020-10-26
,然后我想创建一个新的数据帧。怎么做

import pandas as pd
from datetime import date

date1 = date.fromisoformat('2020-10-25')
date2 = date.fromisoformat('2020-10-26')
date3 = date.fromisoformat('2020-10-27')

for x in range(3):
    df = pd.DataFrame([(date1,f'Stu{x}j', x+1, f'Varan{x}j', x*400+2), 
                        (date2,f'aja{x}k', x+2, f'Del{x}j', x*634+3), 
                        (date3,f'Aadi{x}t', x+4, f'Mumb{x}j', x*454+4),
                        (date2,f'har{x}h', x+5, f'bom{x}j', x*124+5)],
                       columns =['Date','Name', 'Age',  
                             'City', 'Salary'])
    df.set_index('Date', inplace = True)
    print(df)


你可以做:

row1 = df1.loc[date2, :]
row2 = df2.loc[date2, :]
row3 = df3.loc[date2, :]
pd.concat([row1,row2,row3], axis=1).T
输出:

            Name    Age City        Salary
2020-10-26  ajay    32  Delhi       25000
2020-10-26  Saumya  32  Kanpur      20000
2020-10-26  Aaditya 40  Dehradun    24000

下面的代码将帮助您

import pandas as pd
from datetime import date

date1 = date.fromisoformat('2020-10-25')
date2 = date.fromisoformat('2020-10-26')
date3 = date.fromisoformat('2020-10-27')
res = pd.DataFrame()
for x in range(3):
    df = pd.DataFrame([(date1,f'Stu{x}j', x+1, f'Varan{x}j', x*400+2), 
                        (date2,f'aja{x}k', x+2, f'Del{x}j', x*634+3), 
                        (date3,f'Aadi{x}t', x+4, f'Mumb{x}j', x*454+4),
                        (date2,f'har{x}h', x+5, f'bom{x}j', x*124+5)],
                       columns =['Date','Name', 'Age',  
                             'City', 'Salary'])
    temp = df[df['Date'].isin([date2])]
    res = res.append(temp)
print(res)
旧方法:

fr = [df1, df2, df3]
full = pd.concat(fr).reset_index()
full[full.Date.isin([date2])]

你的预期产出是多少?如何处理同一日期和同一列名的冲突内容?如何在循环中实现这一点我已更改了代码请再次访问谢谢@Marcuseror
ObjectHashTable.get_item KeyError:'Date'
@subbuvidyasekaries但我的实际代码与此虚拟代码不同我认为您以前的解决方案是正确的请在合并所有df@subbuvidyasekaries后编写最后两步如果我们在每次迭代中选择row并将其附加到空df中,则答案@stackdotpop中的方法仍然不起作用。我认为它会起作用。您认为如何??@SubbuVidyaSekarLet我们。