我在 python 中有一個集合字典,例如:
{' ': {'---', '--0', '-00', '0--', '00-', '000'}, '0 ': {' --', ' 0-', '---', '--0', '-00', '0--', '00-', '000'}}
我想把它轉換成一個熊貓字典,有兩列:第一列是字典的索引,第二列是字串集。當我嘗試使用 Dataframe.from_dict 執行此操作時,pandas 創建的列數與集合中的最大字串數一樣多。
uj5u.com熱心網友回復:
你可以做explode,d是你的字典嗎?
#d = {' ': {'---', '--0', '-00', '0--', '00-', '000'}, '0 ': {' --', ' 0-', '---', '--0', '-00', '0--', '00-', '000'}}
out = pd.Series(d).explode().reset_index(name='value')
Out[306]:
index value
0 ---
1 00-
2 -00
3 000
4 --0
5 0--
6 0 ---
7 0 0-
8 0 --
9 0 00-
10 0 -00
11 0 000
12 0 --0
13 0 0--
要不就
pd.Series(d).reset_index(name='value')
Out[310]:
index value
0 {---, 00-, -00, 000, --0, 0--}
1 0 {---, 0-, --, 00-, -00, 000, --0, 0--}
uj5u.com熱心網友回復:
我認為您應該按串列將您的價值包圍在 dict 中。
import pandas as pd
test_dict = {
" ": {"---", "--0", "-00", "0--", "00-", "000"},
"0 ": {" --", " 0-", "---", "--0", "-00", "0--", "00-", "000"},
}
for key, value in test_dict.items():
test_dict[key] = [value]
print(test_dict)
然后您的 dict 更改為:
{
" ": [{"00-", "-00", "---", "0--", "--0", "000"}],
"0 ": [{"00-", "-00", "---", " --", "0--", " 0-", "--0", "000"}],
}
最后,使用 from_dict:
test_df = pd.DataFrame.from_dict(test_dict, orient="index").reset_index()
print(test_df)
這就是結果。
index 0
0 {00-, -00, ---, 0--, --0, 000}
1 0 {00-, -00, ---, --, 0--, 0-, --0, 000}
uj5u.com熱心網友回復:
如果您希望集合保持完整,您可以嘗試:
data = {' ': {'---', '--0', '-00', '0--', '00-', '000'}, '0 ': {' --', ' 0-', '---', '--0', '-00', '0--', '00-', '000'}}
pd.DataFrame([data.keys(), data.values()]).T
0 1
0 {--0, -00, ---, 00-, 0--, 000}
1 0 {--0, -00, --, ---, 00-, 0--, 000, 0-}
uj5u.com熱心網友回復:
我想手動將您的鍵和值映射到特定列將適合您的問題。
a = {' ': {'---', '--0', '-00', '0--', '00-', '000'}, '0 ': {' --', ' 0-', '---', '--0', '-00', '0--', '00-', '000'}}
pd.DataFrame({'key': a.keys(), 'value': a.values()})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431713.html
上一篇:比較2個資料框的部分相似性
