이 아마 코드가 의도 한대로 작동하지 않는 이유가 있습니다 :
cereals.append(dt, ignore_index = True)
당신이 생각하는 일을하지 않습니다. 거기에 DataFrame이 아닌 시리즈를 추가하려고합니다.
cereals.append(dt, ignore_index = True)
은 cereals
을 수정하지 않으므로 반환하면 변경되지 않은 복사본이 반환됩니다.
>>> def foo(a):
... a + 1
... return a
...
>>> foo(1)
1
내 컴퓨터에서이 테스트를하지 않은,하지만 난 당신이 고정 된 솔루션은 다음과 같이 보일 것이다라고 생각 -
가 :
동등한 기능은 다음과 같을 것 그런데
def addRows(cereals, lines):
for i in np.arange(1,len(lines)):
data = parseLine(lines[i])
new_df = pd.DataFrame(data, columns=cereals.columns)
cereals = cereals.append(new_df, ignore_index=True)
return cereals
은 .. 정말 라인이 어디에서 오는 모르겠지만, 지금 당장 나는 적어도 다음과 같이 그것을 수정합니다 :
data = [parseLine(line) for line in lines]
cereals = cereals.append(pd.DataFrame(data, cereals.columns), ignore_index=True)
How to add an extra row to a pandas dataframe
또한 새로운 DataFrame을 만들 수 있고 당신의 하나 기존에 그 DataFrame을 추가합니다. 예 :
>>> df = empty_alph.append(alph_abc)
>>> df.loc[df.shape[0]] = ['d', 3] // df.shape[0] just finds next # in index
letter index
0 a 0.0
1 b 1.0
2 c 2.0
3 d 3.0
: 내가 링크에서 언급 한 바와 같이
>>> import pandas as pd
>>> empty_alph = pd.DataFrame(columns=['letter', 'index'])
>>> alph_abc = pd.DataFrame([['a', 0], ['b', 1], ['c', 2]], columns=['letter', 'index'])
>>> empty_alph.append(alph_abc)
letter index
0 a 0.0
1 b 1.0
2 c 2.0
, 당신은 또한 DataFrame에 loc
방법을 사용할 수 있습니다