【发布时间】:2021-12-08 20:16:15
【问题描述】:
我有以下 python 代码:
import streamlit as st
import subprocess
import pandas as pd
git_output = subprocess.run(['git', 'worktree', 'list', '--porcelain'], cwd='F:/myenv/',
capture_output=True,
text=True).stdout
df = pd.DataFrame([
{line.split()[0]: line.rsplit(" ", 1) for line in block.splitlines()}
for block in git_output.split("\n\n")])
st.table(df.filter(items=['worktree', 'branch']))
输出是:
worktree branch
0 ["worktree","F:/demo/a"] <NA>
1 ["worktree","F:/demo/b"] ["branch","refs/heads/dev/demo/b"]
2 ["worktree","F:/demo/c"] ["branch","refs/heads/dev/demo/c"]
3 <NA> <NA>
我可以对df 对象执行哪些操作来获得此输出:
worktree branch
0 [F:/demo/b] [refs/heads/dev/demo/b]
1 [F:/demo/c] [refs/heads/dev/demo/c]
根据 cmets,还添加了 Dictionary 值:
{'worktree': {0: ['worktree', 'F:/myenv'], 1: ['worktree', 'F:/demo/a'], 2: ['worktree', 'F:/demo/b'], 3: ['worktree', 'F:/demo/c'], 4: nan}, 'bare': {0: ['bare'], 1: nan, 2: nan, 3: nan, 4: nan}, 'HEAD': {0: nan, 1: ['HEAD', '48cfcf49e277bafad'], 2: ['HEAD', '21eae7bc2694a3aaaf'], 3: ['HEAD', '28755aad57bf4820ca5'], 4: nan}, 'branch': {0: nan, 1: ['branch', 'refs/heads/dev/demo/a'], 2: ['branch', 'refs/heads/dev/demo/b'], 3: ['branch', 'refs/heads/dev/demo/c'], 4: nan}, 'prunable': {0: nan, 1: ['prunable gitdir file points to non-existent', 'location'], 2: nan, 3: nan, 4: nan}}
【问题讨论】:
-
是
<NA>字符串还是 nan 值? -
这是一个字符串..
-
然后
df[df.ne('<NA>').all(1)]将删除它们。 -
我希望它会,但我仍然可以看到具有该值的行
-
您应该在问题中包含
st.table(df.filter(items=['worktree', 'branch'])).to_dict()的输出。
标签: python-3.x pandas dataframe