Я прочитал учебник по пандам и все еще нуждаюсь в помощи.Я новичок в использовании панд, поэтому, пожалуйста, потерпите меня.
У меня есть CSV, который выглядит так:
#1
identifier1, identifier2,
1.1 , 1.2
2.3 , 4.4
и словарь, который выглядит так:
dict = {'identifier1':'3.3', 'identifier2':'2.3', 'identifier3':'1.6'}
Я хочу обновить этот CSV с помощью этого словаря, чтобы к нему добавлялись столбцы с одинаковыми идентификаторами и создавался столбец для новых идентификаторов.
#2
identifier1, identifier2, identifier3
1.1 , 1.2 , 1.6
2.3 , 4.4 , NaN
3.3 , 2.3 , NaN
Это будет повторное обновление для этого CSV, поэтомув будущем этот процесс будет выглядеть следующим образом:
dict = {'identifier2':'3.5', 'identifier4':'1.5'}
INSERT MERGE CODE HERE
#3
identifier1, identifier2, identifier3, identifier4
1.1 , 1.2 , 1.6 , 1.5
2.3 , 4.4 , NaN , NaN
3.3 , 2.3 , NaN , NaN
NaN , 3.5 , NaN , NaN
Добавить работает, но не так, как я хочу, он дает мне:
dict = {'identifier2':'3.5', 'identifier4':'1.5'}
new_df = pandas.Dataframe.from_dict(dict, orient='columns')
old_df.append(new_df, True)
#4
identifier1, identifier2, identifier3, identifier4
1.1 , 1.2 , 1.6 , NaN
2.3 , 4.4 , NaN , NaN
3.3 , 2.3 , NaN , NaN
NaN , 3.5 , NaN , 1.5
Так что, когда новые столбцы сделаны, мне нужнозначения должны быть в верхнем ряду.Как в # 2 или # 3
.merge(old_df, new_df, how='left')
дает мне старый фрейм данных №2 со сцепленными старыми индексами фреймов данных.
identifier1, identifier2, identifier3, identifier1, identifier2, identifier3,
1.1 , 1.2 , 1.6
2.3 , 4.4 , NaN
3.3 , 2.3 , NaN
&
.merge(old_df, new_df, how='right')
.merge(old_df, new_df, how='outer')
.merge(old_df, new_df, how='inner')
либовернуть мой исходный фрейм данных или что-то, даже не похожее на то, к чему я стремился, например, удалить все строки под индексами.
Спасибо за чтение этого длинного поста, если у вас есть какие-либо вопросы, пожалуйста, оставьте их ниже, и япостараюсь уточнить что-нибудь неоднозначное.