Tôi chỉ gặp phải vấn đề tương tự, vì vậy tôi cung cấp suy nghĩ của mình ở đây.
Cảnh báo
Khi bạn xử lý cấu trúc dữ liệu của Pandas
, bạn phải biết về kiểu trả về .
Một giải pháp khác ở đây
Giống như @jezrael đã đề cập trước đây, Pandas
hãy cung cấp API pd.Series.to_frame
.
Bước 1
Bạn cũng có thể hoàn thành pd.Series
việc pd.DataFrame
cần làm bằng cách
df_val_counts = pd.DataFrame[value_counts] # wrap pd.Series to pd.DataFrame
Sau đó, bạn có một pd.DataFrame
với tên cột 'a'
và cột đầu tiên của
bạn trở thành chỉ mục
Input: print[df_value_counts.index.values]
Output: [2 1]
Input: print[df_value_counts.columns]
Output: Index[['a'], dtype='object']
Bước 2
Gì bây giờ?
Nếu bạn muốn thêm tên cột mới ở đây pd.DataFrame
, bạn có thể chỉ cần đặt lại chỉ mục bằng API của reset_index [] .
Và sau đó, thay đổi tên cột theo danh sách bằng API df.coloumns
df_value_counts = df_value_counts.reset_index[]
df_value_counts.columns = ['unique_values', 'counts']
Sau đó, bạn có những gì bạn cần
Output:
unique_values counts
0 2 3
1 1 2
Câu trả lời đầy đủ tại đây
import pandas as pd
df = pd.DataFrame[{'a':[1, 1, 2, 2, 2]}]
value_counts = df['a'].value_counts[dropna=True, sort=True]
# solution here
df_val_counts = pd.DataFrame[value_counts]
df_value_counts_reset = df_val_counts.reset_index[]
df_value_counts_reset.columns = ['unique_values', 'counts'] # change column names
17 hữu ích 0 bình luận chia sẻ