如果我要打印一列的子字符串,这将起作用:
print(myDf["thisCol"].str[:2])
但是,如果要对另一列进行子串化并将其包括在输出中,则不确定如何执行此操作。
上面的人为输出大致是:
0 fo
1 ba
我想要的,第二列是“ anotherCol”,其中最大长度大于2,是输出:
0 fo tr
1 ba ca
(免责声明:我无法通过多次搜索找到答案。而且我正在以一种横向的方式学习熊猫。...)
答案 0 :(得分:1)
您可以在print
语句中提供一个代表所需空格数的因子,以将其乘以一个空格
import pandas as pd
# mock data following your example, replace by your own data
col1 = ['foo', 'bar']
col2 = ['tri', 'car']
my_df = pd.DataFrame({'this_col': col1, 'another_col': col2})
# Specify your desired number of spaces between the dataframe columns print
desired_num_spaces = 10
# Print dataframes with specified columns separated by the desired number of spaces
print(my_df['this_col'].str[:2] + desired_num_spaces * ' ' + my_df['another_col'].str[:2])
给予
0 fo tr
1 ba ca
dtype: object
顺便说一句:在Python中,最好使用snake_case作为变量名和键名。请不要使用其他语言(如C#,Java等)中使用的camelCase命名样式。
答案 1 :(得分:0)
df=pd.DataFrame({'col1':['foo','bar'],'col2':['foo','bar'],'col3':['foo','bar']})
选择所需的列,然后应用 chooper 函数,该函数会将字符串最多剪切到前两个字符
def chopper(x):
return x[:2]
print(df[['col1','col3']].applymap(chopper))
输出:
col1 col3
0 fo fo
1 ba ba
另一个选择:
如果您的子字符串阈值大于或等于5,则可以使用熊猫显示选项
pd.set_option('max_colwidth',6)
pd.set_option('max_colwidth',6)
df=pd.DataFrame({0:['asdfzklnlkdsfnalsdfknals;dknfs','asdfs0'],1:['foo','bar'],2:['foo','bar']})
print(df)
输出:
0 1 2
0 as... foo foo
1 as... bar bar
答案 2 :(得分:0)
在我看来,就像您只想应用一些东西一样:
>>> df=pd.DataFrame([['aaa','bbb'],['ccc','ddd'],['eee','fff']])
>>> df.apply(lambda x: x.str[:2]) #or applymap(lambda x: x[:2])
0 1
0 aa bb
1 cc dd
2 ee ff
如果您不申请整个表格,则必须
df[specific_col]=df[specific_col].str[:2]
对于每个这样的列。