我有一个带有三个日期列的大型Pandas对象,我想合并并保存在另一个pandas对象中。数据看起来像这样:
name | review | sys_date | rev_date | m_date
user1 | hello | 1.1.2018 | 31.12.2017 | 1.1.2018
user2 | hi | 1.1.2018 | 28.12.2017 | 31.1.2017
user3 | huhu | 1.1.2018 | 27.12.2017 | 28.1.2017
我用以下代码分隔了日期:
dim_sysdate = final[[sysdate]]
dim_rev_date = final[[rev_date ]]
dim_m_date = final[[m_date]]
然后我尝试将日期合并为一列。首先尝试:
frames = [dim_sysdate, dim_rev_date, dim_m_date]
final_pandas= pd.concat(frames)
第二次尝试:
final_pandas =
dim_sysdate.dim_sysdate.combine_first([dim_rev_date.dim_rev_date,
dim_m_date.dim_m_date]).to_frame()
--> Doesnt work: I get following msg: TypeError: Input must be Index or array-like
有人可以给我一个如何解决这个问题的建议吗?
答案 0 :(得分:0)
#Create an empty array. Optional
df['dates'] = np.nan
def make_dates(row):
row['dates'] = [row['sys_date'],row['rev_date'],row['m_date']]
return row
df = df.apply(make_dates,axis=1)
这会在元素中创建一个列表,你可以重写函数来组合它们,无论你喜欢什么。
答案 1 :(得分:0)
final_pandas = pd.concat([final['sys_date'], final['rev_date'], final['m_date']])
应该给你你想要的东西。
输出:
print(final_pandas)
#0 1.1.2018
#1 1.1.2018
#2 1.1.2018
#0 31.12.2017
#1 28.12.2017
#2 27.12.2017
#0 1.1.2018
#1 31.1.2017
#2 28.1.2017
#dtype: object