Tôi có một khung dữ liệu mở rộng cột thông minh bằng cách sử dụng vòng lặp. Bây giờ tôi muốn lưu trữ một số "giai đoạn" của DF đang phát triển bằng cách nào đó và tôi nghĩ rằng nó sẽ là tốt nhất để sử dụng từ điển.
Để cho bạn một bức tranh:
df_dict={}
for i in range[1,13]:
df=pd.read_csv['./test.csv'].iloc[:,0:i*4-1]
Vì vậy, tôi muốn lưu trữ đây là "giai đoạn đầu tiên" của DF:
col1 col2 col3 col4
1 3 5 7
2 4 6 8
Trong "Giai đoạn thứ hai":
col1 col2 col3 col4 col5 col6 col7 col8
1 3 5 7 9 11 13 15
2 4 6 8 10 12 14 16
Giai đoạn 3 chứa 12 cols:
col1 col2 col3 col4 col5 col6 col7 col8 ...
1 3 5 7 9 11 13 15 ...
2 4 6 8 10 12 14 16 ...
Liên tục cho đến giai đoạn thứ 12 chứa 48 cols.
Vì vậy, nói chung, tôi muốn lưu trữ trong các giai đoạn này, nơi mọi giai đoạn mới có thêm 4 cột. Và tôi cần có khả năng sử dụng các DataFrames khác nhau này sau này.
tôi biết điều đó
df_dict.update[{i, df}]
Không hoạt động vì các DF có thể thay đổi, nhưng tôi không tìm cách tìm cách làm việc xung quanh nó.
Tôi là người mới đến Python vì vậy xin vui lòng nhẹ nhàng với tôi. Chúc mừng!
EDIT: Tôi đã không tìm kiếm ý tưởng về cách lấy các biến biến vì tôi đã đề cập rằng tôi muốn sử dụng một dict, nhưng tôi đang tìm kiếm một cách lưu trữ dữ liệu của mình trong một dict. I wasn't searching the Idea of how to get variable variables since I allready mentioned that I want to use a Dict, but I was looking for a way of storing my Dataframe in a Dict.
Overview:
- Một gấu trúc DataFrame có thể được chuyển đổi thành từ điển Python bằng cách sử dụng phương thức thể hiện DataFrame to_dict []. Đầu ra có thể được chỉ định của các hướng khác nhau bằng cách sử dụng tham số hướng.DataFrame can be converted into a Python dictionary using the DataFrame instance method to_dict[]. The output can be specified of various orientations using the parameter orient.
- Trong định hướng từ điển, đối với mỗi cột của dataFrame, giá trị cột được liệt kê theo nhãn hàng trong từ điển. Tất cả các từ điển này được bọc trong một từ điển khác, được lập chỉ mục bằng nhãn cột. Định hướng từ điển được chỉ định với chuỗi theo nghĩa đen của Dict Dict cho tham số hướng. Định hướng từ điển là định hướng mặc định cho đầu ra chuyển đổi.DataFrame the column value is listed against the row label in a dictionary. All these dictionaries are wrapped in another dictionary, which is indexed using column labels. Dictionary orientation is specified with the string literal “dict” for the parameter orient. Dictionary orientation is the default orientation for the conversion output.
- Trong định hướng danh sách, mỗi cột được lập một danh sách và các danh sách được thêm vào từ điển so với các nhãn cột. Định hướng danh sách được chỉ định với Chuỗi theo nghĩa đen Danh sách trực tuyến cho tham số hướng.list orientation, each column is made a list and the lists are added to a dictionary against the column labels. List orientation is specified with the string literal “list” for the parameter orient.
- Trong định hướng loạt, mỗi cột được thực hiện một loạt gấu trúc và các trường hợp loạt được lập chỉ mục theo các nhãn hàng trong đối tượng từ điển được trả về. Định hướng loạt được chỉ định với chuỗi theo nghĩa đen của chuỗi cho tham số hướng.series orientation, each column is made a pandas Series, and the series instances are indexed against the row labels in the returned dictionary object. Series orientation is specified with the string literal “series” for the parameter orient.
- Trong định hướng phân chia, mỗi hàng được lập một danh sách và chúng được bọc trong một danh sách khác và được lập chỉ mục với "dữ liệu" chính trong đối tượng từ điển được trả về. Các nhãn hàng được lưu trữ trong danh sách dựa trên "chỉ mục" khóa. Các nhãn cột được lưu trữ trong danh sách dựa trên "cột" khóa. Định hướng phân chia được chỉ định với chuỗi theo nghĩa đen chia tách cho tham số hướng.list and they are wrapped in another list and indexed with the key "data" in the returned dictionary object. The row labels are stored in a list against the key "index". The columns labels are stored in a list against the key "columns". Split orientation is specified with the string literal “split” for the parameter orient.
- Trong định hướng bản ghi, mỗi cột được thực hiện một từ điển trong đó các phần tử cột được lưu trữ theo tên cột. Tất cả các từ điển được trả lại như một danh sách. Định hướng bản ghi được chỉ định với chuỗi theo nghĩa đen của các bản ghi trực tuyến cho tham số hướng.records orientation, each column is made a dictionary where the column elements are stored against the column name. All the dictionaries are returned as a list. Records orientation is specified with the string literal “records” for the parameter orient.
- Trong hướng chỉ mục, mỗi cột được thực hiện một từ điển trong đó các phần tử cột được lưu trữ theo tên cột. Tất cả các từ điển được trả lại trong một từ điển, được lập chỉ mục bởi các nhãn hàng. Định hướng chỉ mục được chỉ định với chuỗi theo nghĩa đen, chỉ số cho tham số hướng.dictionary where the column elements are stored against the column name. All the dictionaries are returned in a dictionary, which is indexed by the row labels. Index orientation is specified with the string literal “index” for the parameter orient.
Ví dụ - DataFrame sang chuyển đổi từ điển trong chế độ Dict:
# Ví dụ Chương trình Python chuyển đổi một bản dữ liệu gấu trúc thành từ điển Python
nhập khẩu gấu trúc dưới dạng PDS
# Dữ liệu
Dữ liệu = [[1,2,3],
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [4,5,6],
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [7,8,9]];
# Tạo một dataFrame & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
dataFrame = pds.dataFrame [data, index = ["r1", "r2", "r3"], cột = ["c1", "c2", "c3"]];
in ["Nội dung của DataFrame:"];
print[dataFrame];
# Chuyển đổi DataFrame thành chuỗi
Từ điểnBject = dataFrame.to_dict [];
in ["DataFrame dưới dạng từ điển:"];
print[dictionaryObject];
Output:
Nội dung của DataFrame:
& nbsp; & nbsp; & nbsp; C1 & NBSP; C2 & NBSP; C3
R1 & nbsp; & nbsp; 1 & nbsp; & nbsp; 2 & nbsp; & nbsp; 3
R2 & nbsp; & nbsp; 4 & nbsp; & nbsp; 5 & nbsp; & nbsp; 6
R3 & nbsp; & nbsp; 7 & nbsp; & nbsp; 8 & nbsp; & nbsp; 9
DataFrame như một từ điển:
{'C1': {'r1': 1, 'r2': 4, 'r3': 7}, 'c2': {'r1': 2, 'r2': 5, 'r3': 8}, ' C3 ': {' r1 ': 3,' r2 ': 6,' r3 ': 9}}
Ví dụ - DataFrame sang chuyển đổi từ điển trong chế độ danh sách:
# Ví dụ chương trình Python chuyển đổi một dữ liệu gấu trúc thành một
# Từ điển Python ở chế độ danh sách
nhập khẩu gấu trúc dưới dạng PDS
# Dữ liệu
Dữ liệu = [[1,2,3],
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [4,5,6],
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [7,8,9]];
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "04/tháng 11/2019": [62, 60],
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "05/tháng 11/2019": [64, 62]
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; };
# Tạo DataFrame
dataFrame = pds.datAframe [dailyTemate, index = ["max", "min"]];
in ["Nhiệt độ hàng ngày từ DataFrame:"];
print[dataFrame];
# Chuyển đổi DataFrame thành Từ điển
Từ điểnInstance = dataFrame.to_dict [Orient = "list"];
in ["DataFrame dưới dạng từ điển [định hướng danh sách]:"];
print[dictionaryInstance];
Output:
Nhiệt độ hàng ngày từ DataFrame:
& nbsp; & nbsp; & nbsp; & nbsp; 01/tháng 11/2019 & NBSP; 02/tháng 11/2019 & NBSP; 03/tháng 11/2019 & NBSP; 04/tháng 11/2019 & nbsp; 05/tháng 11/2019
Max & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 65 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 62 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 61 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 62 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 64
Min & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 62 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 60 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 60 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 60 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 62
DataFrame như một từ điển [định hướng danh sách]:
Ác : [62, 60], '05/tháng 11/2019 ': [64, 62]}
Ví dụ - Tạo một từ điển của các mục & nbsp; từ một gấu trúc DataFrame:
# Ví dụ chương trình Python tạo ra một từ điển Python # chứa các cặp pandas nhập giá có giá trị khóa dưới dạng PDS
# containing key-value pairs of
import pandas as pds
# Ví dụ Dữ liệu FruitCalories = [["Apple", & NBSP; 52, 0.2], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Orange", & nbsp; 47, & nbsp; 0.1], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Dứa", 50, 0.1], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Bơ", 160, 15.0], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["kiwi", & nbsp; & nbsp; 61, & nbsp; 0.5]];
fruitCalories = [["Apple", 52, 0.2],
["Orange", 47, 0.1],
["Pineapple", 50,
0.1],
["Avocado", 160, 15.0],
["Kiwi", 61, 0.5]];
Cột leheaders = ["trái cây", "calo", "hàm lượng chất béo"];
# Tạo một bản fruitdata dataFrame & nbsp; & nbsp; & nbsp; = pds.dataFrame [data = fruitcalories, cột = cột đầu];
fruitData = pds.DataFrame[data = fruitCalories, columns=columnHeaders];
# Có được một từ điển với & nbsp; mục NutrivalSasdict = fruitData.to_dict [Orient = 'series'];
nutriValsAsDict = fruitData.to_dict[orient='series'];
in ["Truy xuất các chuỗi cá nhân từ từ điển:"]; cho các chìa khóa trong Nutrivalsasdict: & NBSP; & nbsp; in [Nutrivalsasdict [khóa]]; & nbsp; & nbsp; in [loại [Nutrivalsasdict [khóa]]];
for keys in nutriValsAsDict:
print[nutriValsAsDict[keys]];
print[type[nutriValsAsDict[keys]]];
Output:
Truy xuất các chuỗi cá nhân từ từ điển:
0 & nbsp; & nbsp; & nbsp; & nbsp; Quả táo
1 & nbsp; & nbsp; & nbsp; Quả cam
2 & nbsp; & nbsp; Quả dứa
3 & nbsp; & nbsp; & nbsp; Trái bơ
4 & nbsp; & nbsp; & nbsp; & nbsp; Quả kiwi
Tên: Fruit, DTYPE: Đối tượng
& nbsp; & nbsp; & nbsp; & nbsp; 01/tháng 11/2019 & NBSP; 02/tháng 11/2019 & NBSP; 03/tháng 11/2019 & NBSP; 04/tháng 11/2019 & nbsp; 05/tháng 11/2019
0 & nbsp; & nbsp; 52
1 & nbsp; & nbsp; 47
2 & nbsp; & nbsp; 50
3 & nbsp; & nbsp; 160
4 & nbsp; & nbsp; 61
Tên: calo, dtype: int64
0 & nbsp; & nbsp; 0,2
0 & nbsp; & nbsp; 52
1 & nbsp; & nbsp; 47
2 & nbsp; & nbsp; 50
3 & nbsp; & nbsp; 160
4 & nbsp; & nbsp; 61
Tên: calo, dtype: int64
0 & nbsp; & nbsp; 0,2
0 & nbsp; & nbsp; 52
1 & nbsp; & nbsp; 47
# from a DataFrame which will have index, column labels
# and data as separate entries
import pandas as pds
2 & nbsp; & nbsp; 50
["Amazon", 6400, 3976],
["Yangtze", 6300, 3917],
["Mississippi", 6275, 3902],
["Yenisei", 5539, 3445]
];
3 & nbsp; & nbsp; 160
4 & nbsp; & nbsp; 61
riverData = pds.DataFrame[data = riverLengths, columns = columns];
print[riverData];
Tên: calo, dtype: int64
riverDataDict = riverData.to_dict[orient="split"];
print[riverDataDict];
Output:
DataFrame:
0 & nbsp; & nbsp; 0,2
1 & nbsp; & nbsp; 0,1
2 & nbsp; & nbsp; 0,1
2 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Yangtze & nbsp; & nbsp; & nbsp; & nbsp; 6300 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3917
3 & nbsp; & nbsp; & nbsp; Mississippi & NBSP; & nbsp; & nbsp; & nbsp; 6275 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3902
4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Yenisei & nbsp; & nbsp; & nbsp; & nbsp; 5539 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3445
DataFrame như một từ điển với các mục riêng cho chỉ mục, nhãn cột và dữ liệu:
{'index': [0, 1, 2, 3, 4], 'cột': ['Tên của dòng sông', 'chiều dài [kms]', 'chiều dài [dặm]'], 'dữ liệu': [[ 'Nile', '6650', 4130], ['Amazon', 6400, 3976], ['Yangtze', 6300, 3917], ['Mississippi', 6275, 3902], ['Yenisei', 5539, 3445] ]}
Ví dụ - Bản ghi DataFrame được lưu trữ là:
# Ví dụ chương trình Python tạo ra một từ điển của & nbsp; # Từ điển từ một DataFrame của Pandas. # Lưu trữ từ điển được trả về các cặp giá trị khóa ở dạng # của gấu trúc nhập khẩu dưới dạng PDS
# dictionaries from a pandas DataFrame.
#
Returned dictionary stores key-value pairs in the
# form of
import pandas as pds
# Data CountryData = [["Nga", "Moscow", 6601670, 146171015], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Canada", "Ottawa", 3855100, 38048738], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Trung Quốc", "Bắc Kinh", 3705407, 1400050000], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Hoa Kỳ", "Washington, D.C.", 3796742, 331449281], & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ["Brazil", "Brasília", 3287956, 210147125]]]
countryData = [["Russia", "Moscow", 6601670, 146171015],
["Canada", "Ottawa", 3855100, 38048738],
["China", "Beijing", 3705407, 1400050000],
["United States of America", "Washington, D.C.", 3796742, 331449281],
["Brazil", "Brasília", 3287956, 210147125]]
Cột leheaders = ["Quốc gia", "Thủ đô", "Khu vực [sq.miles]", "dân số"]; & nbsp;
# Tạo một gấu trúc dataFrame df = pds.dataFrame [data = countryData, cột = cộtheaders]; in ["DataFrame:"]; in [DF];
df = pds.DataFrame[data = countryData, columns=columnHeaders];
print["DataFrame:"];
print[df];
# Có được dữ liệu dưới dạng từ điển của từ điển in ["DataFrame trong mẫu hồ sơ:"]; recs = df.to_dict [Orient = "index"]; in [recs];
print["DataFrame in records form :"];
recs = df.to_dict[orient="index"];
print[recs];
Output:
DataFrame:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Quốc gia & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Thủ đô & NBSP; Diện tích [sq.miles] & nbsp; Dân số
0 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Nga & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Moscow & NBSP; & nbsp; & nbsp; & nbsp; 6601670 & nbsp; 146171015
1 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Canada & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Ottawa & nbsp; & nbsp; & nbsp; & nbsp; 3855100 & nbsp; & nbsp; 38048738
2 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Trung Quốc & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; Bắc Kinh & nbsp; & nbsp; & nbsp; & nbsp; 3705407 & nbsp; 1400050000
3 & nbsp; Hợp chủng quốc Hoa Kỳ & NBSP; Washington, D.C. & NBSP; & nbsp; & nbsp; & nbsp; 3796742 & nbsp; 331449281
4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Brazil & NBSP; & nbsp; & nbsp; & nbsp; & nbsp; Brasília & nbsp; & nbsp; & nbsp; & nbsp; 3287956 & NBSP; 210147125
DataFrame trong mẫu hồ sơ:
{0: {'Quốc gia': 'Nga', 'Thủ đô': 'Moscow', 'Khu vực [Sq.Miles]': 6601670, 'Dân số': 146171015}, 1: {'Quốc gia': 'Canada', ' Thủ đô ':' Ottawa ',' khu vực [sq.miles] ': 3855100,' dân số ': 38048738}, 2: {' quốc gia ':' Trung Quốc ',' Thủ đô ':' Beijing ',' khu vực [sq.miles ] ': 3705407,' Dân số ': 1400050000}, 3: {' Quốc gia ':' Hoa Kỳ Hoa Kỳ ',' Thủ đô ':' Washington, D.C. ',' Khu vực [Sq.Miles] ': 3796742,' Dân số ' Hay