5645-01B 5645-01A 2002-01A 5325-01C
1812.999999 | 3265.00001 | 4723.000002 | 2190.999996
43.00000001 | 1 | 2.5 | 0
622 | 1783 | 2240.499994 | 1553.000002
1568.999996 | 850.0000002 | 757.9999998 | 948.9999999
Это небольшая часть моей таблицы, мне нужно удалить последнюю букву (A / B / C), чтобы я мог поменять ее на другом кадре данных. Я использовал:
df1.columns = df1.columns.str.rstrip('A')
df1.columns = df1.columns.str.rstrip('B')
df1.columns = df1.columns.str.rstrip('C')
Но проблема оказалась в дубликатах. Как вы можете видеть выше, есть те же цифры, но разные конечные буквы (A, B или C). Мне нужно получить только последнюю версию, это означает, что если есть столбец с C буквой и есть цифра c, дублирующаяся с A или B, я должен полностью удалить столбец / столбцы A / B, и * Столбец 1019 * остается без C. Ex. «5645-01B» должно оставаться как 5645-01, тогда как 5645-01A должно быть удалено. Проблема в том, что я не могу просто удалить буквы, как сделал, или удалить все буквы «А», потому что в некоторых столбцах «А» нет B или C, и я должен их сохранить. Как проверить только «последние версии» и сохранить их?
PS в верхнем ряду имена столбцов. Ожидаемый:
5645-01 2002-01 5325-01
1812.999999 | 4723.000002 | 2190.999996
43.00000001 | 2.5 | 0
622 | 2240.499994 | 1553.000002
1568.999996 | 757.9999998 | 948.9999999
Код, с которым я продолжаю:
df1=df1.transpose()
df2 = pd.read_csv('table3.csv', index_col=['SAMPLE_ID'])
df1 = df1[df1.index.isin(df2.index)]
df1['The_ID'] = df2['EGF']
print(df1.head)
После этого он печатает «Nans» вместо цифр c значений. **** SAMPLE_ID - это индекс, который похож на верхний ряд с числами, но не содержит букв, поэтому я должен удалить их.