首先,我们可以导入一些可能有用的包
import pandas as pd
import datetime
假设我现在有一个dataframe,它有一个日期、名称和年龄列
df1 = pd.DataFrame({'date': ['10-04-2020', '04-07-2019', '12-05-2015' ], 'name': ['john', 'tim', 'sam'], 'age':[20, 22, 27]})
现在假设我有另一个带有一些随机列的数据帧
df2 = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
问题:
如何获取日期筛选的df1
中的年龄值(可以选择此值),并使用此值填充df2
中的整个新列?理想情况下,此方法应适用于数据帧中任意数量的行
尝试过
下面是我尝试过的(在一个类似的例子中),但由于某种原因,它似乎不起作用(它只是在大多数列条目中显示了nan值,但少数列条目似乎随机填充)
y = datetime.datetime(2015, 5, 12)
df2['new'] = df1[(df1['date'] == y)].age
预期产量
由于我已经根据sams年龄(日期对应于具有sams名称的行)在上面进行了筛选,因此我希望将新列添加到df2中,并将其年龄作为所有条目(在本例中,27次重复3次)
df2 = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6], 'new': [27, 27, 27]})
尝试:
您想将y的格式更改为Str,然后尝试df.loc方法
将df1
date
列转换为datetime
类型过滤数据帧并获取年龄
注:假设每个日期只有一个年龄(如OP在评论中所解释)
创建一个新列
输出
相关问题 更多 >
编程相关推荐