Другим ответом будет нарезка, как показано ниже (пояснения в комментариях):
import numpy as np
import pandas as pd
df = pd.DataFrame.from_dict({
"Symbol": ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"],
"Condition1": [1, np.nan, 3, np.nan, np.nan, np.nan, 7, np.nan, np.nan, 8, 12],
"Condition2": [np.nan, 2, 2, 7, np.nan, np.nan, 5, 11, 14, np.nan, np.nan],
}
)
new_df = pd.concat(
[
df["Symbol"][df[column].notnull()].reset_index(drop=True) # get columns without null and ignore the index (as your output suggests)
for column in list(df)[1:] # Iterate over all columns except "Symbols"
],
axis=1, # Column-wise concatenation
)
# Rename columns
new_df.columns = list(df)[1:]
# You can leave NaNs or replace them with empty string, your choice
new_df.fillna("", inplace=True)
Результатом этой операции будет:
Condition1 Condition2
0 a b
1 c c
2 g d
3 j g
4 k h
5 i
Если вам нужны какие-либо дополнительные разъяснения, оставьте комментарий внизу.
Существует специальный синтаксис для создания непрерывных свойств в избранном объекте. Попробуйте это (обертывание, добавленное для ясности):
get-qaduser -name "hamilmat"
| select-object logonName, homeDrive,
@{Name="containerName"; Expression={$_.parentContainerDN.Name}}
| export-csv ...