【发布时间】:2018-11-01 18:21:10
【问题描述】:
我有一个熊猫数据框:
ind
0 ['C']
1 ['C']
2 ['C']
3 ['C']
4 ['E']
5 ['E']
我想转成字符串:CCCCEE
【问题讨论】:
标签: python pandas dataframe series
我有一个熊猫数据框:
ind
0 ['C']
1 ['C']
2 ['C']
3 ['C']
4 ['E']
5 ['E']
我想转成字符串:CCCCEE
【问题讨论】:
标签: python pandas dataframe series
from itertools import chain
df = pd.DataFrame({'ind': [['C'], ['C'], ['C'], ['C'], ['E'], ['E']]})
res = ''.join(chain.from_iterable(df['ind']))
print(res)
CCCCEE
【讨论】:
''.join(chain.from_iterable(df['ind'])) 不够吗?
list 转换是有意的,see here why。你说得对,访问values 是不必要的,更新了。
str.join 将在应用join 之前将生成器转换为列表,因此建议使用@ 987654330@ 对() 表达式的列表理解。但是,当本例中的返回值是迭代器时,没有必要将其转换为列表,因为无论如何这将由 str.join 完成。因此,我认为您在这种特殊情况下是错误的,list() 只会创建额外的括号层。
list 很贵。看来我需要再深入一点。谢谢:)。
您可以使用str
df['ind'].str[0].sum()
Out[197]: 'CCCCEE'
【讨论】:
df.index.str[0].sum()?
你可以这样做:
chain=""
for index, row in df.iterrows():
chain=chain+row['column']
return chain
如果您在遍历数据帧时遇到问题,可以查看How to iterate over rows in a DataFrame in Pandas?
【讨论】: