Nếu bạn đến đây để tìm kiếm thông tin về cách hợp nhất a
DataFrame
vàSeries
trên chỉ mục , vui lòng xem câu trả lời này .Mục đích ban đầu của OP là hỏi cách gán các phần tử chuỗi dưới dạng cột cho DataFrame khác . Nếu bạn muốn biết câu trả lời cho điều này, hãy xem câu trả lời được chấp nhận bởi EdChum.
Tốt nhất tôi có thể nghĩ ra là
df = pd.DataFrame({'a':[1, 2], 'b':[3, 4]}) # see EDIT below
s = pd.Series({'s1':5, 's2':6})
for name in s.index:
df[name] = s[name]
a b s1 s2
0 1 3 5 6
1 2 4 5 6
Ai có thể đề xuất cú pháp tốt hơn / phương pháp nhanh hơn?
Cố gắng của tôi:
df.merge(s)
AttributeError: 'Series' object has no attribute 'columns'
và
df.join(s)
ValueError: Other Series must have a name
CHỈNH SỬA Hai câu trả lời đầu tiên được đăng làm nổi bật một vấn đề với câu hỏi của tôi, vì vậy vui lòng sử dụng phần sau để xây dựng df
:
df = pd.DataFrame({'a':[np.nan, 2, 3], 'b':[4, 5, 6]}, index=[3, 5, 6])
với kết quả cuối cùng
a b s1 s2
3 NaN 4 5 6
5 2 5 5 6
6 3 6 5 6
df
vàs
, câu trả lời này trả về cho tôi một khung dữ liệu trống, không phải kết quả được yêu cầu trong câu hỏi. Chúng tôi không muốn khớp về chỉ mục; chúng tôi muốn phát cács
giá trị cho tất cả các hàng củadf
.