pandas 对于Series,是否有与set_index等效的函数?

f0brbegy  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(167)

我正在试用pandas,但在使用concat()(而不是过时的append())用大量Series填充DataFrame时遇到了问题,其中名称应该从每个Series(类似于DataFrame.set_index())的某个值中取出(移动)
下面的代码 * 可以工作 *,但我不知道如何使用正确的pandas来复制它:

_collection = pd.DataFrame()
with open(filename) as _f:
for _line in _f.readlines():
    # Parse the line into a dictionary
    # e.g: {"Worker ID": 123, "Name": "John Smith", "Salary ($)": 1000}
    _entry = re.match(RE_ENTRY, _line).groupdict()
    # Append the dictionary to _collection using pd.concat()
    _collection= pd.concat([_collection, pd.Series(_entry, name=_entry.pop("Work ID"))], axis=1)
return _collection

我发现将X1 M8 N1 X的变通方法替换为将X1 M9 N1 X更改为X1 M10 N1 X,但这似乎是多余的...
我假设pandas有一种更干净的方法来完成这项工作,但不可否认,我对此知之甚少!👀💦
附言:可能有一个列表理解解决方案,但我需要调整解析后的_entry中的一些值。😅

ars1skjm

ars1skjm1#

您可以使用set_axis

>>> sr = pd.Series(list('ABCDEF'))
0    A
1    B
2    C
3    D
4    E
5    F
dtype: object

>>> sr.set_axis(range(8, 14))
8     A
9     B
10    C
11    D
12    E
13    F
dtype: object

相关问题