[英]Python Openpyxl - Copy values from column A to B with same rows range
[英]How to replace the rows in column A with the rows in column B only when column B has values different from NaT in Python?
仅当 B 列的值与 Python 中的NaT
不同时,我才尝试将 A 列中的行替换为 B 列中的行。
这就是我所做的:
import numpy as np
import pandas as pd
query0 = pd.DataFrame.from_dict({'Proposed Date': {0: '2021-01-07 00:00:00',
1: '2021-01-21 00:00:00',
2: '2021-01-25 00:00:00',
3: '2021-01-25 00:00:00',
4: '2021-01-25 00:00:00',
5: '2021-01-25 00:00:00',
6: '2021-01-26 00:00:00',
7: '2021-01-26 00:00:00',
8: '2021-01-28 00:00:00',
9: '2021-01-29 00:00:00'},
'Start Time1': {0: '17:00',
1: nan,
2: '09:45',
3: '11:45',
4: '14:45',
5: '14:45',
6: '14:00',
7: '14:20',
8: '18:15',
9: nan},
'Publication Date': {0: '2021-01-12 00:00:00',
1: 'NaT',
2: 'NaT',
3: 'NaT',
4: 'NaT',
5: 'NaT',
6: '2021-01-31 00:00:00',
7: '2021-01-27 00:00:00',
8: 'NaT',
9: '2021-01-31 00:00:00'}})
x = np.isnat(query0['Publication Date'])
for i in range(len(query0)):
if x == 'False':
query0['Proposed Date'][i] = query0['Publication Date'][i]
else:
query0['Proposed Date'][i]
让我给你一个例子,只为第一行提供所需的 output:
# actual dataset for row 0
Proposed Date Start Time1 Publication Date
0 2021-01-07 00:00:00 17:00 2021-01-12 00:00:00
# desired output for row 0
Proposed Date Start Time1 Publication Date
0 2021-01-12 00:00:00 17:00 2021-01-12 00:00:00
# do this for every row
但是,它不起作用。
谁能帮我这个?
谢谢!
您可以尝试np.where
(并将列隐藏到之前的日期时间):
query0["Proposed Date"] = pd.to_datetime(query0["Proposed Date"])
query0["Publication Date"] = pd.to_datetime(query0["Publication Date"])
query0["Proposed Date"] = np.where(
query0["Publication Date"].notna(),
query0["Publication Date"],
query0["Proposed Date"],
)
print(query0)
印刷:
Proposed Date Start Time1 Publication Date
0 2021-01-12 17:00 2021-01-12
1 2021-01-21 NaN NaT
2 2021-01-25 09:45 NaT
3 2021-01-25 11:45 NaT
4 2021-01-25 14:45 NaT
5 2021-01-25 14:45 NaT
6 2021-01-31 14:00 2021-01-31
7 2021-01-27 14:20 2021-01-27
8 2021-01-28 18:15 NaT
9 2021-01-31 NaN 2021-01-31
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.