Python 在dataframe中的行之间添加特殊字符
假设我有这样一个列表:Python 在dataframe中的行之间添加特殊字符,python,pandas,dataframe,Python,Pandas,Dataframe,假设我有这样一个列表: df = pd.DataFrame(data = abc, columns = ['a','b','c']) a b c 1 2 3 4 5 6 7 8 9 输入: a = [1,2,3] b = [4,5,6] c = [7,8,9] abc = [a,b,c] abc 输出: [[1, 2, 3], [4, 5, 6], [7, 8, 9]] a b c 0 1 2 3 1 ! ! ! 2 4 5 6
df = pd.DataFrame(data = abc, columns = ['a','b','c'])
a b c
1 2 3
4 5 6
7 8 9
输入:
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
abc = [a,b,c]
abc
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a b c
0 1 2 3
1 ! ! !
2 4 5 6
3 ! ! !
4 7 8 9
我将其转换为如下数据帧:
df = pd.DataFrame(data = abc, columns = ['a','b','c'])
a b c
1 2 3
4 5 6
7 8 9
要获得这样的表格:
df = pd.DataFrame(data = abc, columns = ['a','b','c'])
a b c
1 2 3
4 5 6
7 8 9
我如何在每个列表(所以每行)之间放置一个特殊字符(如!或#)
我想要的是:
a b c
1 2 3
! ! !
4 5 6
! ! !
7 8 9
如果您的索引是默认范围索引,那么您可以使用类似np.linspace的内容
df.reindex(np.linspace(0,df.index.max(),df.index.max()*2+1)).fillna('!').reset_index(drop=True)
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a b c
0 1 2 3
1 ! ! !
2 4 5 6
3 ! ! !
4 7 8 9
如果您的索引是默认范围索引,那么您可以使用类似np.linspace的内容
df.reindex(np.linspace(0,df.index.max(),df.index.max()*2+1)).fillna('!').reset_index(drop=True)
输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a b c
0 1 2 3
1 ! ! !
2 4 5 6
3 ! ! !
4 7 8 9
这里有一个方法:
df = pd.DataFrame(data = abc, columns = ['a','b','c'],index=range(0,len(abc)*2,2))
df = df.reindex(range(len(abc)*2)).fillna('!')
这里有一个方法:
df = pd.DataFrame(data = abc, columns = ['a','b','c'],index=range(0,len(abc)*2,2))
df = df.reindex(range(len(abc)*2)).fillna('!')
更简单的方法是从现有数据帧创建一个新的数据帧,并将每个列设置为
代码>。然后,附加到原始数据帧并按索引排序:
df1 = df.copy()
for col in df1.columns: df1[col] = '!'
df.append(df1).sort_index().iloc[:-1]
Out[1]:
a b c
0 1 2 3
0 ! ! !
1 4 5 6
1 ! ! !
2 7 8 9
如果希望新索引没有重复值,还可以执行以下操作:
df.append(df1).sort_index().reset_index(drop=True).iloc[:-1]
a b c
0 1 2 3
1 ! ! !
2 4 5 6
3 ! ! !
4 7 8 9
更简单的方法是从现有数据帧创建一个新的数据帧,并将每个列设置为代码>。然后,附加到原始数据帧并按索引排序:
df1 = df.copy()
for col in df1.columns: df1[col] = '!'
df.append(df1).sort_index().iloc[:-1]
Out[1]:
a b c
0 1 2 3
0 ! ! !
1 4 5 6
1 ! ! !
2 7 8 9
如果希望新索引没有重复值,还可以执行以下操作:
df.append(df1).sort_index().reset_index(drop=True).iloc[:-1]
a b c
0 1 2 3
1 ! ! !
2 4 5 6
3 ! ! !
4 7 8 9
你能解释一下为什么你认为这样的东西会有用吗?如果你想让数据框在shell中的格式不同,你可以查看prettytable、texttable、termtable或Table包。@DavidErickson这不是我的问题,所以我不能设置接受解决方案。试着问taliamycota@DavidErickson一切都好。无需道歉:)你能解释一下为什么你认为这样的东西会有用吗?如果你想让数据框在shell中的格式不同,你可以查看prettytable、texttable、termtable或Table包。@DavidErickson这不是我的问题,所以我无法设置接受解决方案。试着问taliamycota@DavidErickson一切都好。无需道歉:)