我正在尝试将 YAML 文件中的数据导入 Pandas DataFrame。以下面的例子为例data.yml:
---
- doc: "Book1"
reviews:
- reviewer: "Paul"
stars: "5"
- reviewer: "Sam"
stars: "2"
- doc: "Book2"
reviews:
- reviewer: "John"
stars: "4"
- reviewer: "Sam"
stars: "3"
- reviewer: "Pete"
stars: "2"
...
Run Code Online (Sandbox Code Playgroud)
所需的 DataFrame 如下所示:
doc reviews.reviewer reviews.stars
0 Book1 Paul 5
1 Book1 Sam 2
2 Book2 John 4
3 Book2 Sam 3
4 Book2 Pete 2
Run Code Online (Sandbox Code Playgroud)
我试过以不同的方式将 YAML 数据提供给 Pandas(如with open('data.yml') as f: data = pd.DataFrame(yaml.load(f))),但单元格始终包含嵌套的字典。此 …
我想格式化一系列字符串,以便索引在某处的字符串中.示例系列:
ser = pd.Series(['CT', 'NY', 'MT'], index=['Jessica', 'Eric', 'Toby'])
ser
Jessica CT
Eric NY
Toby MT
dtype: object
Run Code Online (Sandbox Code Playgroud)
所需的输出:
Jessica Jessica: CT
Eric Eric: NY
Toby Toby: MT
dtype: object
Run Code Online (Sandbox Code Playgroud)
我试过这个变种:
ser.apply(lambda x: "{}: {}".format(x.index, x))
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它x.index引用的是索引方法str,而不是迭代的系列.
传入数据是 0+ 类别的列表:
#input data frame
df = pd.DataFrame({'categories':(list('ABC'), list('BC'), list('A'))})
categories
0 [A, B, C]
1 [B, C]
2 [A]
Run Code Online (Sandbox Code Playgroud)
我想将其转换为一个 DataFrame,每个类别一列,每个单元格中有一个 0/1:
#desired output
A B C
0 1 1 1
1 0 1 1
2 1 0 0
Run Code Online (Sandbox Code Playgroud)
OneHotEncoder 和 LabelEncoder 会陷入困境,因为它们不处理单元格中的列表。当前通过嵌套循环实现了预期的结果for:
#get unique categories ['A','B','C']
categories = np.unique(np.concatenate(x['categories']))
#make empty data frame
binary_df = pd.DataFrame(columns=[c for c in categories],
index=x.index)
print(binary_df)
A B C
0 NaN NaN NaN
1 NaN NaN NaN …Run Code Online (Sandbox Code Playgroud) 对于Python列表:
l = list('ABCDEFG')
Run Code Online (Sandbox Code Playgroud)
怎么能把它变成一个连续的N元组列表,边缘情况不被抛出?这是N = 3的示例:
A
A B
A B C
B C D
C D E
D E F
E F G
F G
G
Run Code Online (Sandbox Code Playgroud)
我可以接近
for first, second, third in zip(l,l[1:],l[2:]):
print(first, second, third)
Run Code Online (Sandbox Code Playgroud)
但是,这并不包括在边缘的情况下,不能容易地扩展到其他Ñ.我可以使用C-looking for循环来修补它,检查数组绑定的有效性,但它很快就会变成一个嵌套if语句的网络,我正在寻找更多的Pythonic解决方案.
评论(可能应该作为答案提交)有代码
sscanf(string, "<title>%[^<]</title>", extracted_string);
Run Code Online (Sandbox Code Playgroud)
运行代码似乎将<title>标签之间的文本复制到了extracted_string,但我无法在手册页或其他在线网页上找到对printf系列中插入符号的任何引用.
有人能指出我的资源,解释家庭中的使用%[^<]和其他类似的语法sscanf()吗?
我有一个包含源代码的工作目录和编译后生成的文件.我不跟踪中间构建文件,但我想保留一个工作的成品,每次更改我跟踪的源代码git add和git commit.
每次提交和推动我的工作时添加相同的结果文件变得很繁琐.是否有一个"anti-.gitignore"文件,我可以配置为在修改时始终暂存此文件,以便每个文件保存commit?