gpt4 book ai didi

python - 将 defaultdict 传递给 df

转载 作者:行者123 更新时间:2023-12-05 07:20:26 24 4
gpt4 key购买 nike

我正在尝试导入一个 txt 文件,其中列出了州和大学。我利用 defaultdict 导入 txt 并将其解析到我有一个列表的地方,大学依附于该州。然后如何将数据放入具有两列(State、RegionName)的 pandas 数据框中?到目前为止没有任何效果。

我构建了一个空数据框:

ut = pd.DataFrame(columns = {'State', 'RegionName'})

并尝试了几种不同的方法,但都没有奏效。

with open('ut.txt') as ut:
for line in ut:
if '[edit]' in line:
a = line.rstrip().split('[')
d[a[0]].append(a[1])
else:
b = line.rstrip().split(' ')
d[a[0]].append(b[0])
continue

这让我得到了一个不错的列表:

defaultdict(<class 'list'>, {'State': ['edit]', 'School', 'School2', 'School3', 'School4', 'School5', 'School6', 'School7', 'School8'],

edit] 是表示状态的原始 txt 文件的一部分。后面的所有内容都是学校所在的城镇。

我想构建一个漂亮的 2 列数据框,其中州是左列,所有学校都在右列...

最佳答案

考虑下面的字典

data_dict = {"a": 1, "b": 2, "c": 3}

考虑到您要从该字典创建一个数据框并分别命名列 StateRegionName,以下将完成工作

data_items = data_dict.items()

data_list = list(data_items)

df = pd.DataFrame(data_list, columns = ["State", "RegionName"])

哪个会得到

[In]: print(df) 
[Out]:
State RegionName
0 a 1
1 b 2
2 c 3

如果在创建数据框时没有传递列的名称,考虑到列的名称为 ab,可以将列重命名为 pandas.DataFrame.rename

df = df.rename(columns = {"a": "State", "b": "RegionName"})

如果目标只是读取具有这样结构的 txt 文件

column1 column2
1 2
3 4
5 6

然后下面会做的工作

colnames=['State', 'RegionName'] 

df = pd.read_csv("file.txt", colnames, header=None)

请注意,如果列的名称已经是您想要的名称,则只需使用以下名称

df = pd.read_csv("file.txt") 

关于python - 将 defaultdict 传递给 df,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57499426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com