sub_df = df.iloc[:, df.columns.str.find("Opening Data").argmax()+1:] # retrieve only remaining columns
for index, row in df.iterrows():
if not row['Opening Data']:
for col in sub_df.columns:
if is_date(row[col]):
df.iloc[index]['Opening Data'] = row[col]
df.iloc[index][col] = ''
1条答案
按热度按时间jaql4c8m1#
我想了一个非常解释性的方法。
首先,我们需要一个能够识别日期类型的函数。我不知道你的csv文件中是否有特定的格式,所以如果有疑问,我们将使用一个能够识别任何模式的函数。
checkout 'Check if string has date, any format':
此时,我们可以对 Dataframe 中的每一行进行迭代,如果右列中没有值,我们将搜索所有下一列。
从以下形式的数据集开始:
| | 期初数据|列_0|列_1|
| - -|- -|- -|- -|
| 第0页|2000年1月1日上午10时00分|||
| 一个||2000年2月1日上午10时00分||
| 2个|||2000年1月3日上午10时00分|
输出将是:
| | 期初数据|列_0|列_1|
| - -|- -|- -|- -|
| 第0页|2000年1月1日上午10时00分|||
| 一个|2000年2月1日上午10时00分|||
| 2个|2000年1月3日上午10时00分|||