我有以下数据框("日期"列的数量可能会有所不同):
Customer Date1 Date2 Date3 Date4个个 0 A 10 40.0南60.0
1 B 20 50.0南南
2英寸30毫微米
如果最后一列中有"NaN"(如上所述,列数可能会有所不同),我希望将所有列右移到数据框的末尾,使其如下所示:
Customer Date1 Date2 Date3 Date4个
0 A 10 40.0南60.0
1 B南南20 50.0
2摄氏度30
所有保留为空的值都可以设置为NaN.
我如何在Python中做到这一点呢?
我try 了以下代码,但不起作用:
import numpy as np
import pandas as pd
data = {
'Customer': ['A', 'B', 'C'],
'Date1': [10, 20, 30],
'Date2': [40, 50, np.nan],
'Date3': [np.nan, np.nan, np.nan],
'Date4': [60, np.nan, np.nan]
}
df = pd.DataFrame(data)
for i in range(1, len(df.columns)):
df.iloc[:, i] = df.iloc[:, i-1].shift(fill_value=np.nan)
print(df)